Чтобы исследовать причину непройденных тестов, добавьте 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
.