编写插件以扩展 TestRunner
自定义插件概述
TestRunnerPlugin
方法有四个级别:测试会话、测试套件、测试类和测试。在每个级别,您都可以实现方法来扩展测试运行。此外,您可以在测试套件、测试类和测试级别实现方法,以扩展测试或测试脚手架的创建、设置和拆解。
在测试套件、测试类和测试级别,TestRunner
使用 reportFinalizedResult
方法报告最终测试结果。当没有其余的测试内容可以修改测试结果时,表示测试结果已最终确定。TestRunner
会确定它是否在每个级别都调用 reportFinalizedResult
方法。在测试会话级别,TestRunner
使用 reportFinalizedSuite
方法在测试套件最终确定后报告测试结果。
TestRunner
运行不同方法,如下图所示。
创建方法是唯一包含输出参数的 TestRunnerPlugin
方法集。通常,可扩展创建方法以在对应级别侦听源自测试内容的各种事件。因为 TestCase
和 Fixture
实例均继承自 handle
类,所以可以使用 addlistener
方法添加侦听程序。设置、运行和拆解测试内容的方法可扩展 TestRunner
评估测试内容的方式。
扩展测试会话级别插件方法
测试会话级别的 TestRunnerPlugin
方法可扩展传递给 TestRunner
的测试套件的运行和报告。下列方法属于 runSession
方法的范围。
此级别的运行方法 runTestSuite
可扩展测试框架传递给 TestRunner
的整个 TestSuite
数组的一部分的运行。reportFinalizedSuite
方法可扩展 runTestSuite
最终确定的测试套件的报告。
扩展测试套件级别插件方法
测试套件级别的 TestRunnerPlugin
方法扩展共享测试脚手架的创建、设置、运行和拆解。下列方法属于 runTestSuite
方法的范围。
方法类型 | 测试级别处于 runTestSuite 范围内 |
---|---|
创建方法 | createSharedTestFixture |
设置方法 | setupSharedTestFixture |
运行方法 | runTestClass |
拆解方法 | teardownSharedTestFixture |
在此级别,createSharedTestFixture
方法是唯一带输出参数的插件方法。它为测试类所需的每个共享脚手架返回 Fixture
实例。这些脚手架实例可通过 TestCase
的 getSharedTestFixtures
方法提供给测试。
此级别的运行方法 runTestClass
扩展属于同一测试类的测试或同一基于函数的测试的运行,并纳入为测试类级别插件方法描述的功能。
扩展测试类级别插件方法
测试类级别的 TestRunnerPlugin
方法可扩展属于同一测试类或同一基于函数的测试的测试套件元素的创建、设置、运行和拆解。这些方法适用于 TestRunner
运行的整个 TestSuite
数组的一部分。
方法类型 | 测试级别处于 runTestClass 范围内 |
---|---|
创建方法 | createTestClassInstance |
设置方法 | setupTestClass |
运行方法 | runTest |
拆解方法 | teardownTestClass |
在此级别,createTestClassInstance
方法是唯一带输出参数的插件方法。它返回在类级别创建的 TestCase
实例。对于每个类,测试框架向任何带有 TestClassSetup
或 TestClassTeardown
属性的方法传递该实例。
如果某测试类设置包含带 ClassSetupParameter
特性的属性,则它已被参数化。本例中,测试框架按照类设置参数化的规定评估 setupTestClass
和 teardownTestClass
方法很多次。
此级别的运行方法 runTest
可扩展单个 TestSuite
元素的运行,并纳入为测试级别插件方法描述的功能。
测试框架在 runTestClass
方法范围内对测试类级别的方法进行计算。如果 TestClassSetup
代码成功完成,则它为 TestSuite
数组中的每个元素调用 runTest
方法一次。每个 TestClassSetup
参数化调用创建、设置和拆解方法一次。
扩展测试级别插件方法
测试级别的 TestRunnerPlugin
方法可扩展单个测试套件元素的创建、设置、运行和拆解。单个 Test
元素包括一个测试方法,如果测试被参数化,则包括测试参数化的一个实例。
方法类型 | 测试级别处于 runTest 范围内 |
---|---|
创建方法 | createTestMethodInstance |
设置方法 | setupTestMethod |
运行方法 | runTestMethod |
拆解方法 | teardownTestMethod |
在此级别,createTestMethodInstance
方法是唯一带输出参数的插件方法。它返回为每个 Test
元素创建的 TestCase
实例。测试框架将每个实例传入相应的 Test
方法,以及任何带有 TestMethodSetup
或 TestMethodTeardown
属性的方法。
测试框架在 runTest
方法范围内对测试级别的方法进行计算。框架完成所有 TestMethodSetup
工作后,它为每个 Test
元素调用此级别的插件方法一次。
另请参阅
matlab.unittest.plugins.TestRunnerPlugin
| matlab.automation.streams.OutputStream
| matlab.unittest.TestCase
| matlab.unittest.TestRunner
| matlab.unittest.fixtures.Fixture
| addlistener
| matlab.unittest.TestSuite
| matlab.unittest.plugins.Parallelizable