append
类: matlab.unittest.plugins.plugindata.ResultDetails
命名空间: matlab.unittest.plugins.plugindata
说明
append(
将 resultDetails
,field
,data
)data
追加到 TestResult
数组的 field
属性中的 Details
。如果 field
不存在,该方法会将其添加到 Details
结构体中,并将 data
存储在添加的字段中。
当您在插件类方法的作用域内调用 append
时,追加操作会应用于受插件方法影响的所有 TestResult
对象。例如,如果您在 runSession
的 TestRunnerPlugin
方法的作用域内调用 append
,则会将相同的数据添加到属于测试会话的所有 TestResult
对象。
输入参数
resultDetails
— 测试结果详细信息的修改器
matlab.unittest.plugins.plugindata.ResultDetails
对象
测试结果详细信息的修改器,指定为 matlab.unittest.plugins.plugindata.ResultDetails
类的实例。
field
— 字段名称
字符向量 | 字符串标量
字段名称,指定为字符向量或字符串标量。有效字段名称以字母开头,可以包含字母、数字和下划线。字段名称的最大长度是 namelengthmax
函数返回的值。
data
— 要追加到字段的数据
标量 | 数组
要追加到字段的数据,指定为标量或对象数组。例如,您可以将 data
指定为数值标量、字符串数组、元胞数组、结构体或类对象。
您可以对特定字段调用 append
方法,并根据需要多次向该字段追加数据。如果将不同类的元素追加到一个字段中,MATLAB® 会转换一些元素,以便该字段中的所有元素均属于同一类型。有关详细信息,请参阅不同类的有效合并。
示例
将组编号添加到测试结果详细信息中
测试框架可以将测试套件分成不同的各组,并在当前并行池中运行每个组(需要 Parallel Computing Toolbox™)。创建一个插件,该插件将组编号添加到 TestResult
对象中。
在当前文件夹中的文件中,创建可并行化的插件类 ExamplePlugin
,它覆盖 TestRunnerPlugin
的 runTestSuite
方法。将包含组编号的 Group
字段添加到与该组对应的 TestResult
对象的 Details
属性中。
classdef ExamplePlugin < ... matlab.unittest.plugins.TestRunnerPlugin & ... matlab.unittest.plugins.Parallelizable methods (Access = protected) function runTestSuite(plugin,pluginData) % Inspect pluginData to get the TestSuite group number groupNumber = pluginData.Group; % Add the group number to TestResult objects resultDetails = pluginData.ResultDetails; resultDetails.append('Group',groupNumber) % Invoke the superclass method runTestSuite@matlab.unittest.plugins.TestRunnerPlugin(plugin,pluginData); end end end
在您的当前文件夹中,创建一个名为 ExampleTest.m
的文件,其中包含此参数化测试类。此类产生 300 个测试,用于比较 1 和 10 之间的伪随机整数。
classdef ExampleTest < matlab.unittest.TestCase properties (TestParameter) num1 = num2cell(randi(10,1,10)); num2 = num2cell(randi(10,1,10)); end methods(Test) function testAssert(testCase,num1,num2) testCase.assertNotEqual(num1,num2) end function testVerify(testCase,num1,num2) testCase.verifyNotEqual(num1,num2) end function testAssume(testCase,num1,num2) testCase.assumeNotEqual(num1,num2) end end end
在命令提示符下,基于 ExampleTest
类创建测试套件。
suite = testsuite('ExampleTest');
创建一个没有插件的 TestRunner
实例,将 ExamplePlugin
添加到运行器中,然后并行运行测试。
import matlab.unittest.TestRunner
runner = TestRunner.withNoPlugins;
runner.addPlugin(ExamplePlugin)
result = runner.runInParallel(suite);
Split tests into 18 groups and running them on 6 workers. ---------------- Finished Group 1 ---------------- ---------------- Finished Group 2 ---------------- ---------------- Finished Group 3 ---------------- ---------------- Finished Group 4 ---------------- ---------------- Finished Group 5 ---------------- ---------------- Finished Group 6 ---------------- ---------------- Finished Group 7 ---------------- ---------------- Finished Group 8 ---------------- ---------------- Finished Group 9 ---------------- ----------------- Finished Group 10 ----------------- ----------------- Finished Group 11 ----------------- ----------------- Finished Group 12 ----------------- ----------------- Finished Group 13 ----------------- ----------------- Finished Group 14 ----------------- ----------------- Finished Group 15 ----------------- ----------------- Finished Group 16 ----------------- ----------------- Finished Group 17 ----------------- ----------------- Finished Group 18 -----------------
检索第一个和最后一个 Test
元素的组编号。
groupOfFirst = result(1).Details.Group groupOfLast = result(end).Details.Group
groupOfFirst = 1 groupOfLast = 18
扩展功能
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
版本历史记录
在 R2020a 中推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)