exponenta event banner

Анализ результатов неудачного тестирования

В этом примере показано, как идентифицировать и повторно запустить неуспешные тесты.

Создание неверного метода тестирования

Использование 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) ссылка в результатах теста.

Связанные темы