이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
TestRunner를 확장하는 플러그인 작성하기
사용자 지정 플러그인 개요
TestRunnerPlugin
메서드에는 4개의 레벨, 즉 테스트 세션 레벨, 테스트 스위트 레벨, 테스트 클래스 레벨, 테스트 레벨이 있습니다. 각 레벨에서 메서드를 구현하여 테스트 실행을 확장합니다. 또한 테스트 스위트 레벨, 테스트 클래스 레벨 및 테스트 레벨에서 메서드를 구현하여 테스트 또는 테스트 픽스처(Fixture)의 생성(Creation), 설정(Setup), 해제(Teardown)를 확장합니다.
테스트 스위트 레벨, 테스트 클래스 레벨 및 테스트 레벨에서 reportFinalizedResult
메서드를 통해 TestRunner
는 최종 테스트 결과를 보고할 수 있습니다. 나머지 테스트 콘텐츠가 결과를 더 이상 수정할 수 없는 경우 테스트 결과가 확정됩니다. TestRunner
는 각 테스트 레벨에서 reportFinalizedResult
메서드를 불러올 수 있는지 확인합니다. 테스트 세션 레벨에서 reportFinalizedSuite
메서드를 통해 TestRunner
는 테스트 스위트가 완료되면 테스트 결과를 보고할 수 있습니다.
TestRunner
는 서로 다른 메서드를 다음 그림과 같이 실행합니다.
생성 메서드는 출력 인수가 있는 유일한 TestRunnerPlugin
메서드의 집합입니다. 통상적으로, 사용자는 해당 레벨의 테스트 콘텐츠에서 발생하는 다양한 이벤트를 수신하도록 생성 메서드를 확장하게 됩니다. TestCase
인스턴스와 Fixture
인스턴스는 모두 handle
클래스에서 상속되므로, addlistener
메서드를 사용하여 리스너를 추가합니다. 테스트 콘텐츠를 설정하고 실행하고 해제하는 메서드는 TestRunner
의 테스트 콘텐츠 실행 방법을 확장합니다.
테스트 세션 레벨 플러그인 메서드 확장하기
테스트 세션 레벨의 TestRunnerPlugin
메서드는 TestRunner
에 전달된 테스트 스위트의 실행 및 보고를 확장합니다. 이들 메서드는 runSession
메서드의 범위에 속합니다.
이 레벨의 실행 메서드 runTestSuite
는 테스트 프레임워크가 TestRunner
에 전달하는 전체 TestSuite
배열 중 일부의 실행을 확장합니다. reportFinalizedSuite
메서드는 runTestSuite
에 의해 완료된 테스트 스위트의 보고를 확장합니다.
테스트 스위트 레벨 플러그인 메서드 확장하기
테스트 스위트 레벨의 TestRunnerPlugin
메서드는 공유 테스트 픽스처(Fixture)의 생성, 설정, 실행, 해제를 확장합니다. 이들 메서드는 runTestSuite
메서드의 범위에 속합니다.
메서드 유형 | runTestSuite 의 범위 내에서 해당되는 테스트 레벨 |
---|---|
생성 메서드 | createSharedTestFixture |
설정 메서드 | setupSharedTestFixture |
실행 메서드 | runTestClass |
해제 메서드 | teardownSharedTestFixture |
이 레벨에서 createSharedTestFixture
메서드는 출력 인수가 있는 유일한 플러그인 메서드입니다. 이 메서드는 테스트 클래스에 요구되는 각 공유 픽스처에 대해 Fixture
인스턴스를 반환합니다. 이러한 픽스처 인스턴스는 TestCase
의 getSharedTestFixtures
메서드 전체의 테스트에 사용할 수 있습니다.
이 레벨의 실행 메서드 runTestClass
는 동일한 테스트 클래스나 동일한 함수 기반 테스트에 속하는 테스트 실행을 확장하고 테스트 클래스 레벨 플러그인 메서드에 대해 설명된 기능을 통합합니다.
테스트 클래스 레벨의 플러그인 메서드 확장하기
테스트 클래스 레벨의 TestRunnerPlugin
메서드는 동일한 테스트 클래스나 동일한 함수 기반 테스트에 속하는 테스트 스위트 요소의 생성, 설정, 실행, 해제를 확장합니다. 이 메서드는 TestRunner
가 실행하는 전체 TestSuite
배열의 일부에 적용됩니다.
메서드 유형 | runTestClass 의 범위 내에서 해당되는 테스트 레벨 |
---|---|
생성 메서드 | createTestClassInstance |
설정 메서드 | setupTestClass |
실행 메서드 | runTest |
해제 메서드 | teardownTestClass |
이 레벨에서 createTestClassInstance
메서드는 출력 인수가 있는 유일한 플러그인 메서드입니다. 이 메서드는 클래스 레벨에서 생성된 TestCase
인스턴스를 반환합니다. 각 클래스에 대해, 테스트 프레임워크는 TestClassSetup
특성(Attribute)이나 TestClassTeardown
특성이 있는 모든 메서드에 인스턴스를 전달합니다.
테스트 클래스 설정은 ClassSetupParameter
특성이 있는 속성이 포함되어 있는 경우 파라미터화됩니다. 이 경우, 테스트 프레임워크는 클래스 설정 파라미터화에 지정된 횟수만큼 setupTestClass
메서드와 teardownTestClass
메서드를 실행합니다.
이 레벨의 실행 메서드 runTest
는 단일 TestSuite
요소의 실행을 확장하고 테스트 레벨 플러그인 메서드에 대해 설명된 기능을 통합합니다.
테스트 프레임워크는 runTestClass
메서드 범위 내의 테스트 클래스 레벨에서 메서드를 실행합니다. TestClassSetup
코드는 성공적으로 완료되는 경우, TestSuite
배열의 각 요소에 대해 한 번씩 runTest
메서드를 불러옵니다. 각 TestClassSetup
파라미터화는 생성, 설정, 해제 메서드를 한 번 불러옵니다.
테스트 레벨 플러그인 메서드 확장하기
테스트 레벨의 TestRunnerPlugin
메서드는 단일 테스트 스위트 요소의 생성, 설정, 실행, 해제를 확장합니다. 하나의 Test
요소는 하나의 테스트 메서드로 구성되거나 테스트가 파라미터화된 경우에는 하나의 테스트 파라미터화 인스턴스로 구성됩니다.
메서드 유형 | runTest 의 범위 내에서 해당되는 테스트 레벨 |
---|---|
생성 메서드 | createTestMethodInstance |
설정 메서드 | setupTestMethod |
실행 메서드 | runTestMethod |
해제 메서드 | teardownTestMethod |
이 레벨에서 createTestMethodInstance
메서드는 출력 인수가 있는 유일한 플러그인 메서드입니다. 이 메서드는 각 Test
요소에 대해 생성된 TestCase
인스턴스를 반환합니다. 테스트 프레임워크는 이 인스턴스 각각을 해당 Test
메서드에 전달하고 TestMethodSetup
특성(Attribute)이나 TestMethodTeardown
특성이 있는 모든 메서드에 전달합니다.
테스트 프레임워크는 runTest
메서드 범위 내의 테스트 레벨에서 메서드를 실행합니다. 프레임워크가 모든 TestMethodSetup
작업을 완료하는 경우, 이 레벨의 플러그인 메서드를 Test
요소당 한 번씩 불러옵니다.
참고 항목
matlab.unittest.plugins.TestRunnerPlugin
| matlab.unittest.plugins.OutputStream
| matlab.unittest.TestCase
| matlab.unittest.TestRunner
| matlab.unittest.fixtures.Fixture
| addlistener
| matlab.unittest.TestSuite
| matlab.unittest.plugins.Parallelizable