Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

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

이 예제에서는 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
    methods(Test)
        function realSolution(testCase)
            actSolution = quadraticSolver(1,-3,2);
            expSolution = [2,1];
            testCase.verifyEqual(actSolution,expSolution)
        end
        function imaginarySolution(testCase)
            actSolution = quadraticSolver(1,2,10);
            expSolution = [-1+3i, -1-3i];
            testCase.verifyEqual(actSolution,expSolution)
        end
        function nonnumericInput(testCase)
            testCase.verifyError(@()quadraticSolver(1,'-3',2), ...
                'quadraticSolver:InputMustBeNumeric')
        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      1x3              7613  matlab.unittest.TestResult              

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

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

result(1)
ans = 
  TestResult with properties:

          Name: 'SolverTest/realSolution'
        Passed: 1
        Failed: 0
    Incomplete: 0
      Duration: 0.0065
       Details: [1×1 struct]

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

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

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

rt = table(result)
rt=3×6 table
                  Name                  Passed    Failed    Incomplete    Duration       Details   
    ________________________________    ______    ______    __________    _________    ____________

    {'SolverTest/realSolution'     }    true      false       false       0.0065241    {1×1 struct}
    {'SolverTest/imaginarySolution'}    true      false       false       0.0036673    {1×1 struct}
    {'SolverTest/nonnumericInput'  }    true      false       false       0.0074686    {1×1 struct}

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

sortrows(rt,'Duration')
ans=3×6 table
                  Name                  Passed    Failed    Incomplete    Duration       Details   
    ________________________________    ______    ______    __________    _________    ____________

    {'SolverTest/imaginarySolution'}    true      false       false       0.0036673    {1×1 struct}
    {'SolverTest/realSolution'     }    true      false       false       0.0065241    {1×1 struct}
    {'SolverTest/nonnumericInput'  }    true      false       false       0.0074686    {1×1 struct}

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

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

관련 항목