Этот пример показывает, как идентифицировать и повторно выполнить проваленные тесты.
Используя тест SolverTest, добавьте метод, testBadRealSolution. Этот тест, на основе testRealSolution, вызывает функцию quadraticSolver с входными параметрами 1,3,2, но тестирует результаты против неправильного решения, [2,1].
function testBadRealSolution(testCase) actSolution = quadraticSolver(1,3,2); expSolution = [2,1]; testCase.verifyEqual(actSolution,expSolution) end
Сохраните обновленное определение класса SolverTest и повторно выполните тесты.
quadTests = matlab.unittest.TestSuite.fromClass(?SolverTest); result1 = run(quadTests);
Running SolverTest
..
================================================================================
Verification failed in SolverTest/testBadRealSolution.
---------------------
Framework Diagnostic:
---------------------
verifyEqual failed.
--> The values are not equal using "isequaln".
--> Failure table:
Index Actual Expected Error RelativeError
_____ ______ ________ _____ _____________
1 -1 2 -3 -1.5
2 -2 1 -3 -3
Actual Value:
-1 -2
Expected Value:
2 1
------------------
Stack Information:
------------------
In C:\work\SolverTest.m (SolverTest.testBadRealSolution) at 19
================================================================================
.
Done SolverTest
__________
Failure Summary:
Name Failed Incomplete Reason(s)
=============================================================================
SolverTest/testBadRealSolution X Failed by verification.Вывод говорит вам отказавший SolverTest/testBadRealSolution. От Framework Diagnostic вы видите следующее:
Actual Value:
-1 -2
Expected Value:
2 1На данном этапе необходимо решить, находится ли ошибка в quadraticSolver или в значении для expSolution.
Отредактируйте значение expSolution в testBadRealSolution:
expSolution = [-1 -2];
Сохраните SolverTest и повторно выполните только проваленные тесты.
failedTests = quadTests([result1.Failed]); result2 = run(failedTests)
Running SolverTest
.
Done SolverTest
__________
result2 =
TestResult with properties:
Name: 'SolverTest/testBadRealSolution'
Passed: 1
Failed: 0
Incomplete: 0
Duration: 0.0108
Details: [1x1 struct]
Totals:
1 Passed, 0 Failed, 0 Incomplete.
0.010813 seconds testing time.Также можно повторно выполнить проваленные тесты с помощью ссылки (rerun) в результатах испытаний.