失敗したテスト結果の解析
以下の例では、失敗したテストを特定し、それを再実行する方法を示します。
誤りのあるテスト メソッドの作成
SolverTest テスト ケースを使用して、メソッド testBadRealSolution を追加します。このテストは、testRealSolution をベースとしており、入力 1,3,2 を指定して関数 quadraticSolver を呼び出しますが、誤った解 [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 の値のものかを特定しなければなりません。
エラーの修正
testBadRealSolution の expSolution の値を編集します。
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) リンクを使用して、失敗したテストを再実行することもできます。