Main Content

다양한 워크플로에 대한 테스트 실행하기

예제 테스트 설정하기

테스트를 실행하는 다른 방법을 알아보려면 현재 작업 폴더에 클래스 기반 테스트와 함수 기반 테스트를 생성하십시오. 클래스 기반 테스트 파일의 경우, matlab.unittest.qualifications.Verifiable 예제에 나오는 DocPolynomTest 예제 테스트를 사용하십시오. 함수 기반 테스트 파일의 경우, 설정 함수와 해제 함수를 사용하여 테스트 작성하기에 나오는 axesPropertiesTest 예제 테스트를 사용하십시오.

클래스나 함수의 모든 테스트 실행하기

TestCase 클래스의 run 메서드를 사용하여 하나의 테스트 파일에 포함된 테스트를 직접 실행하십시오. 직접 테스트를 실행할 때는 명시적으로 Test 배열을 만들 필요가 없습니다.

% Directly run a single file of class-based tests
results1 = run(DocPolynomTest); 

% Directly run a single file of function-based tests
results2 = run(axesPropertiesTest);

함수 형식이나 점 표기법을 사용하여 테스트 파일 출력값을 변수에 할당하고 테스트를 실행할 수도 있습니다.

% Create Test or TestCase objects
t1 = DocPolynomTest;      % TestCase object from class-based test
t2 = axesPropertiesTest;  % Test object from function-based test

% Run tests using functional form
results1 = run(t1); 
results2 = run(t2);

% Run tests using dot notation
results1 = t1.run; 
results2 = t2.run;

또는 runtests를 사용하거나 편집기에서 하나의 파일에 포함된 테스트를 실행할 수 있습니다.

클래스나 함수의 단일 테스트 실행하기

테스트 메서드를 run 메서드에 대한 입력 인수로 지정하여 클래스 기반 테스트 파일 내에서 단일 테스트를 실행하십시오. 예를 들어, DocPolynomTest 파일에서 테스트 testMultiplication만 실행하십시오.

results1 = run(DocPolynomTest,'testMultiplication');

함수 기반 테스트 파일은 단일 TestCase 객체 대신 Test 객체 배열을 반환합니다. 배열의 요소를 참조하여 특정 테스트를 실행할 수 있습니다. 그러나, 테스트 배열에 있는 Name 필드를 검토하여 올바른 테스트를 실행하는지 확인해야 합니다. 예를 들어, axesPropertiesTest 파일에서 테스트 surfaceColorTest만 실행하십시오.

t2 = axesPropertiesTest;  % Test object from function-based test
t2(:).Name
ans =

axesPropertiesTest/testDefaultXLim


ans =

axesPropertiesTest/surfaceColorTest

테스트 surfaceColorTest는 배열의 두 번째 요소에 해당합니다.

테스트 surfaceColorTest만 실행하십시오.

results2 = t2(2).run; % or results2 = run(t2(2));

또는 편집기에서 단일 테스트를 실행할 수 있습니다.

이름으로 테스트 스위트 실행하기

테스트 그룹이나 테스트 스위트를 함께 실행할 수 있습니다. runtests를 사용하여 테스트 스위트를 실행할 수 있도록, 테스트 스위트는 테스트 파일, 테스트 클래스, 테스트가 포함된 네임스페이스, 혹은 테스트가 포함된 폴더를 나타내는 문자형 벡터로 구성된 셀형 배열로 정의되어 있습니다.

suite = {'axesPropertiesTest','DocPolynomTest'};
runtests(suite);

pwdruntests 함수 입력값으로 사용하여 현재 폴더에 있는 모든 테스트를 실행하십시오.

 runtests(pwd);

또는, 명시적으로 Test 배열을 만들고 run 메서드를 사용하여 이 배열을 실행할 수 있습니다.

테스트 배열에서 테스트 스위트 실행하기

명시적으로 Test 배열을 만들고 TestSuite 클래스의 run 메서드를 사용하여 이 배열을 실행할 수 있습니다. 이런 접근 방식을 사용하여 명시적으로 TestSuite 객체를 정의하며 이후 해당 내용을 검토할 수 있습니다. runtests 함수는 TestSuite 객체를 반환하지 않습니다.

import matlab.unittest.TestSuite
s1 = TestSuite.fromClass(?DocPolynomTest);
s2 = TestSuite.fromFile('axesPropertiesTest.m');

% generate test suite and then run
fullSuite = [s1 s2];
result = run(fullSuite); 

테스트 스위트가 명시적으로 정의되어 있기 때문에, 사용자 실패한 테스트를 다시 실행하는 등, 테스트 스위트에 대한 추가 분석을 수행하기가 쉽습니다.

failedTests = fullSuite([result.Failed]);
result2 = run(failedTests);

사용자 지정 테스트 실행기(Test Runner)를 사용하여 테스트 실행하기

사용자 지정 테스트 실행기를 정의하고 플러그인을 추가하여 테스트 실행을 특화할 수 있습니다. TestRunner 클래스의 run 메서드는 TestSuite 객체에 대한 동작을 수행합니다.

import matlab.unittest.TestRunner
import matlab.unittest.TestSuite
import matlab.unittest.plugins.TestRunProgressPlugin

% Generate TestSuite.
s1 = TestSuite.fromClass(?DocPolynomTest);
s2 = TestSuite.fromFile('axesPropertiesTest.m');
suite = [s1 s2];

% Create silent test runner.
runner = TestRunner.withNoPlugins;

% Add plugin to display test progress.
runner.addPlugin(TestRunProgressPlugin.withVerbosity(2))

% Run tests using customized runner.
result = run(runner,[suite]);

참고 항목

| | |

관련 항목