Analyze Failed Test Results - MATLAB & Simulink (original) (raw)
This example shows how to identify and rerun failed tests.
Create an Incorrect Test Method
Using the SolverTest
test case, add a method,testBadRealSolution
. This test, based ontestRealSolution
, calls thequadraticSolver
function with inputs1,3,2
, but tests the results against an incorrect solution, [2,1]
.
function testBadRealSolution(testCase) actSolution = quadraticSolver(1,3,2); expSolution = [2,1]; testCase.verifyEqual(actSolution,expSolution) end
Run New Test Suite
Save the updated SolverTest
class definition and rerun the tests.
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.
Analyze Results
The output tells you SolverTest/testBadRealSolution
failed. From the Framework Diagnostic
you see the following:
Actual Value:
-1 -2
Expected Value:
2 1
At this point, you must decide if the error is inquadraticSolver
or in your value forexpSolution
.
Correct Error
Edit the value of expSolution
intestBadRealSolution
:
Rerun Tests
Save SolverTest
and rerun only the failed tests.
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.
Alternatively, you can rerun failed tests using the (rerun)
link in the test results.