이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

테스트 케이스 결과 분석하기

이 예제에서는 SolverTest 테스트 케이스에서 생성된 테스트 실행기가 반환한 정보를 분석하는 방법을 보여줍니다.

2차 솔버 함수 생성하기

작업 폴더의 파일 quadraticSolver.m에서 2차 방정식의 근을 구하는 다음과 같은 함수를 만드십시오.

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

2차 솔버 함수에 대한 테스트 생성하기

작업 폴더의 파일 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 탐색하기

출력 인수 resultmatlab.unittest.TestResult 객체입니다. 여기에는 SolverTest에 있는 두 개의 테스트에 대한 정보가 포함됩니다.

whos result
  Name        Size            Bytes  Class                         Attributes

  result      1x2              5136  matlab.unittest.TestResult              

하나의 테스트에 대한 정보 표시하기

하나의 값에 대한 정보를 보려면 다음을 입력하십시오.

result(1)
ans = 
  TestResult with properties:

          Name: 'SolverTest/testRealSolution'
        Passed: 1
        Failed: 0
    Incomplete: 0
      Duration: 0.7534
       Details: [1x1 struct]

Totals:
   1 Passed, 0 Failed, 0 Incomplete.
   0.7534 seconds testing time.

테스트 결과를 테이블로 생성하기

테이블에서 사용할 수 있는 기능에 액세스하려면 TestResult 객체에서 테이블을 만드십시오.

rt = table(result)
rt=2×6 table
                   Name                   Passed    Failed    Incomplete    Duration      Details   
    __________________________________    ______    ______    __________    ________    ____________

    'SolverTest/testRealSolution'         true      false       false         0.7534    [1x1 struct]
    'SolverTest/testImaginarySolution'    true      false       false       0.023282    [1x1 struct]

기간을 기준으로 테스트 결과를 정렬하십시오.

sortrows(rt,'Duration')
ans=2×6 table
                   Name                   Passed    Failed    Incomplete    Duration      Details   
    __________________________________    ______    ______    __________    ________    ____________

    'SolverTest/testImaginarySolution'    true      false       false       0.023282    [1x1 struct]
    'SolverTest/testRealSolution'         true      false       false         0.7534    [1x1 struct]

테스트 결과를 CSV 파일로 내보내십시오.

writetable(rt,'myTestResults.csv','QuoteStrings',true)

관련 항목