В рабочей папке создайте файл ExampleTest.m
содержащий следующий тестовый класс.
В командной строке создайте тестовый набор из ExampleTest
класс и исполнитель тестов.
Запустите тесты.
Running ExampleTest
================================================================================
Verification failed in ExampleTest/testOne.
---------------------
Framework Diagnostic:
---------------------
verifyEqual failed.
--> The values are not equal using "isequaln".
--> Failure table:
Actual Expected Error RelativeError
______ ________________ ____________________ ____________________
3.1416 3.14159265358979 7.34641020683213e-06 2.33843499679617e-06
Actual double:
3.141600000000000
Expected double:
3.141592653589793
------------------
Stack Information:
------------------
In C:\work\ExampleTest.m (ExampleTest.testOne) at 6
================================================================================
.
================================================================================
ExampleTest/testTwo was filtered.
Details
================================================================================
.
Done ExampleTest
__________
Failure Summary:
Name Failed Incomplete Reason(s)
==================================================================
ExampleTest/testOne X Failed by verification.
------------------------------------------------------------------
ExampleTest/testTwo X Filtered by assumption.
В результате проверки в тестовом классе первый тест не проходит, а второй тест не завершается.
Добавьте StopOnFailuresPlugin
и запустите тесты.
Running ExampleTest
Test execution paused due to failure. Either click here or execute DBUP to shift context to its source: line 6 of "C:\work\ExampleTest.m".
Во время выполнения теста, когда происходит отказ, MATLAB входит в режим отладки.
Щелкните гиперссылку 'here'
чтобы переместить контекст отладки в рабочий источник. При необходимости сделайте командное окно своим активным окном.
In workspace belonging to ExampleTest>ExampleTest.testOne at 6
Исследуйте переменные в рабочей области.
Name Size Bytes Class Attributes
act 1x1 8 double
exp 1x1 8 double
testCase 1x1 112 ExampleTest
Теперь можно выяснить причину непройденного теста.
Для примера смотрите, проходит ли тест, когда вы задаете относительную погрешность 100*eps
.
Verification failed in ExampleTest/testOne.
---------------------
Framework Diagnostic:
---------------------
verifyEqual failed.
--> The values are not equal using "isequaln".
--> The error was not within relative tolerance.
--> Failure table:
Actual Expected Error RelativeError RelativeTolerance
______ ________________ ____________________ ____________________ ____________________
3.1416 3.14159265358979 7.34641020683213e-06 2.33843499679617e-06 2.22044604925031e-14
Actual double:
3.141600000000000
Expected double:
3.141592653589793
------------------
Stack Information:
------------------
In C:\work\ExampleTest.m (ExampleTest.testOne) at 6
================================================================================
Тест завершается неуспешно даже с заданным допуском.
Выход из режима отладки.
================================================================================
Verification failed in ExampleTest/testOne.
---------------------
Framework Diagnostic:
---------------------
verifyEqual failed.
--> The values are not equal using "isequaln".
--> Failure table:
Actual Expected Error RelativeError
______ ________________ ____________________ ____________________
3.1416 3.14159265358979 7.34641020683213e-06 2.33843499679617e-06
Actual double:
3.141600000000000
Expected double:
3.141592653589793
------------------
Stack Information:
------------------
In C:\work\ExampleTest.m (ExampleTest.testOne) at 6
================================================================================
.
================================================================================
ExampleTest/testTwo was filtered.
Details
================================================================================
.
Done ExampleTest
__________
Failure Summary:
Name Failed Incomplete Reason(s)
==================================================================
ExampleTest/testOne X Failed by verification.
------------------------------------------------------------------
ExampleTest/testTwo X Filtered by assumption.
Чтобы войти в режим отладки для тестов, которые не выполняются по предположениям, таких как testTwo
в ExampleTest
класс, включать 'IncludingAssumptionFailures'
опция для плагина.
Если вы запускаете исполнитель тестов, вы входите в режим отладки для обоих testOne
и testTwo
.