Чтобы исследовать причину непройденных тестов, добавьте StopOnFailuresPlugin экземпляр к исполнителю тестов.
В вашей текущей папке создайте ExampleTest тестирование класса.
В командной строке создайте тестовый набор из ExampleTest и запущенный тесты. В результате проверок в тестовом классе, первых тестовых сбоях и втором тесте не завершается.
Running ExampleTest
================================================================================
Verification failed in ExampleTest/testOne.
---------------------
Framework Diagnostic:
---------------------
verifyEqual failed.
--> The numeric values are not equal using "isequaln".
--> Failure table:
Actual Expected Error RelativeError
______ ________________ ____________________ ____________________
3.1416 3.14159265358979 7.34641020683213e-06 2.33843499679617e-06
Actual Value:
3.141600000000000
Expected Value:
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 экземпляр бегуну и повторно выполненный тесты. Во время тестового прогона, когда отказ происходит, MATLAB вводит режим отладки в источнике отказа.
Running ExampleTest
================================================================================
Verification failed in ExampleTest/testOne.
---------------------
Framework Diagnostic:
---------------------
verifyEqual failed.
--> The numeric values are not equal using "isequaln".
--> Failure table:
Actual Expected Error RelativeError
______ ________________ ____________________ ____________________
3.1416 3.14159265358979 7.34641020683213e-06 2.33843499679617e-06
Actual Value:
3.141600000000000
Expected Value:
3.141592653589793
------------------
Stack Information:
------------------
In C:\work\ExampleTest.m (ExampleTest.testOne) at 6
================================================================================
Test execution paused due to failure. To terminate the test run, use dbquit. To continue, use dbcont.Можно исследовать причину непройденного теста. Например, исследуйте переменные в рабочей области.
Name Size Bytes Class Attributes
act 1x1 8 double
exp 1x1 8 double
testCase 1x1 8 ExampleTest
Смотрите, передает ли проваленный тест, когда вы задаете относительную погрешность 100*eps. Тест перестал работать даже с заданным допуском.
================================================================================
Verification failed in ExampleTest/testOne.
---------------------
Framework Diagnostic:
---------------------
verifyEqual failed.
--> The numeric 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 Value:
3.141600000000000
Expected Value:
3.141592653589793
------------------
Stack Information:
------------------
In C:\work\ExampleTest.m (ExampleTest.testOne) at 6
================================================================================Протестируйте, если различие между фактическими и ожидаемыми значениями в 0.001. Проваленный тест передает с заданной абсолютной погрешностью.
Можно использовать dbquit закончить тестовый прогон или dbcont выходить из режима отладки и остальной части запуска тестов. Например, выйдите из отладки.
Ввести режим отладки для тестов, которые перестали работать предположением, таким как testTwo в ExampleTest класс, набор IncludingAssumptionFailures к true когда вы создаете плагин.
Если вы теперь повторно выполняете тесты, MATLAB вводит режим отладки для обоих testOne и testTwo.