本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。
此示例说明如何分析从 SolverTest
测试用例创建的测试运行程序返回的信息。
创建以下函数来对您的工作文件夹下的文件 quadraticSolver.m
中二次方程的根求解。
type quadraticSolver.m
function roots = quadraticSolver(a, b, c) % quadraticSolver returns solutions to the % quadratic equation a*x^2 + b*x + c = 0. if ~isa(a,'numeric') || ~isa(b,'numeric') || ~isa(c,'numeric') error('quadraticSolver:InputMustBeNumeric', ... 'Coefficients must be numeric.'); end roots(1) = (-b + sqrt(b^2 - 4*a*c)) / (2*a); roots(2) = (-b - sqrt(b^2 - 4*a*c)) / (2*a); end
在您的工作文件夹下的文件 SolverTest.m
中,创建以下测试类。
type SolverTest.m
classdef SolverTest < matlab.unittest.TestCase % SolverTest tests solutions to the quadratic equation % a*x^2 + b*x + c = 0 methods (Test) function testRealSolution(testCase) actSolution = quadraticSolver(1,-3,2); expSolution = [2,1]; testCase.verifyEqual(actSolution,expSolution); end function testImaginarySolution(testCase) actSolution = quadraticSolver(1,2,10); expSolution = [-1+3i, -1-3i]; testCase.verifyEqual(actSolution,expSolution); end end end
SolverTest
测试用例创建一个测试套件 quadTests
。
quadTests = matlab.unittest.TestSuite.fromClass(?SolverTest); result = run(quadTests);
Running SolverTest .. Done SolverTest __________
所有测试都已通过。
result
输出参数 result
是一个 matlab.unittest.TestResult
对象。它包含 SolverTest
中的两个测试的信息。
whos result
Name Size Bytes Class Attributes result 1x2 4850 matlab.unittest.TestResult
要查看一个值的信息,请键入:
result(1)
ans = TestResult with properties: Name: 'SolverTest/testRealSolution' Passed: 1 Failed: 0 Incomplete: 0 Duration: 0.4013 Details: [1x1 struct] Totals: 1 Passed, 0 Failed, 0 Incomplete. 0.40133 seconds testing time.
要访问表格可用的功能,先从 TestResult
对象创建一个表格。
rt = table(result)
rt=2×6 table
Name Passed Failed Incomplete Duration Details
____________________________________ ______ ______ __________ ________ ____________
{'SolverTest/testRealSolution' } true false false 0.40133 {1x1 struct}
{'SolverTest/testImaginarySolution'} true false false 0.013796 {1x1 struct}
按持续时间对测试结果排序。
sortrows(rt,'Duration')
ans=2×6 table
Name Passed Failed Incomplete Duration Details
____________________________________ ______ ______ __________ ________ ____________
{'SolverTest/testImaginarySolution'} true false false 0.013796 {1x1 struct}
{'SolverTest/testRealSolution' } true false false 0.40133 {1x1 struct}
将测试结果导出到 CSV 文件。
writetable(rt,
'myTestResults.csv'
,
'QuoteStrings'
,true)