Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

失敗したテスト結果の解析

以下の例では、失敗したテストを特定し、それを再実行する方法を示します。

誤りのあるテスト メソッドの作成

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 の値のものかを特定しなければなりません。

エラーの修正

testBadRealSolutionexpSolution の値を編集します。

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) リンクを使用して、失敗したテストを再実行することもできます。

関連するトピック