失敗したテスト結果の解析
以下の例では、失敗したテストを特定し、それを再実行する方法を示します。
誤りのあるテスト メソッドの作成
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)
リンクを使用して、失敗したテストを再実行することもできます。