主要内容

runInParallel

类:matlab.unittest.TestRunner
包:matlab.unittest

运行所有测试TestSuite并行阵列

描述

例子

结果= runInParallel(跑步者套件类返回的并行池上运行指定的测试套件,并使用指定的测试运行程序来运行每个组gcp(并行计算工具箱)函数。的数组返回结果TestResult对象。

当测试并行运行时(需要并行计算工具箱™),测试套件部分将在MATLAB上独立运行®工人。例如,如果您的测试类有一个TestClassSetup方法,则该方法在每个worker上本地运行。工人们在他们的通信中使用这些信息测试元素来运行测试。每一个测试元素为工作人员提供了运行测试所需的所有信息。

请注意

测试框架可能会改变组的顺序和数量,或者在每个组中包含哪些测试。

输入参数

全部展开

并行测试组的测试运行程序,指定为matlab.unittest.TestRunner实例。

在并行运行测试之前,请考虑您的测试运行程序配置。自runInParallel方法在不同的工作对象上运行不同的测试组,例如StopOnFailuresPlugin,不太适合并行化。测试框架支持与自定义插件并行运行测试,前提是金宝app插件的子类可平行的接口。

要并行运行的测试集,指定为matlab.unittest.Test数组中。

例子

全部展开

在当前工作文件夹中的一个文件中创建以下参数化测试。

classdefTestRand < matlab.unittest.TestCase属性(TestParameter) dim1 = createDimensionSizes;dim2 = createDimensionSizes;dim3 = createDimensionSizes;类型= {“单一”“双”};结束方法(测试)函数testRepeatable(testCase,dim1,dim2,dim3) state = rng;firstRun = rand(dim1,dim2,dim3);rng(state) secondRun = rand(dim1,dim2,dim3);testCase.verifyEqual (firstRun secondRun);结束函数testClass (testCase dim1、dim2类型)testCase.verifyClass(兰德(dim1、dim2类型),类型)结束结束结束函数尺寸= createDimensionSizes创建对数间隔的大小,最大可达100size = num2cell(round(logspace(0,2,10)));结束

在命令提示符下,从创建一个套件TestRand.m以及在命令窗口中显示文本的测试运行程序。

suite = matlab.unittest.TestSuite.fromClass(?TestRand);runner = matlab.unittest.TestRunner.withTextOutput();

该套件包含1200个测试元素。并行运行测试。

results = runInParallel(运行器,套件)
把测试分成12组,在4个工作人员身上运行。---------------- 完成组2  ---------------- 运行TestRand  .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .........完成TestRand  __________ ---------------- 完成集团4  ---------------- 运行TestRand  .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .....完成TestRand  __________ ---------------- 完成3组  ---------------- 运行TestRand  .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......完成TestRand  __________ ---------------- 完成组1  ---------------- 运行TestRand  .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... ..完成TestRand  __________ ---------------- 完成集团7  ---------------- 运行TestRand  .......... .......... .......... .......... .......... .......... .......... .......... .......... .........完成TestRand  __________ ---------------- 完成集团5  ---------------- 运行TestRand  .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... ...完成TestRand  __________ ---------------- 完成集团6  ---------------- 运行TestRand  .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .完成TestRand  __________ ---------------- 完成集团8  ---------------- 运行TestRand  .......... .......... .......... .......... .......... .......... .......... .......... .......... .......完成TestRand  __________ ----------------- 完成集团11  ----------------- 运行TestRand  .......... .......... .......... .......... .......... .......... .......... .......... .......... . Done TestRand __________ ----------------- Finished Group 12 ----------------- Running TestRand .......... .......... .......... .......... .......... .......... .......... .......... ........ Done TestRand __________ ----------------- Finished Group 10 ----------------- Running TestRand .......... .......... .......... .......... .......... .......... .......... .......... .......... ... Done TestRand __________ ---------------- Finished Group 9 ---------------- Running TestRand .......... .......... .......... .......... .......... .......... .......... .......... .......... ..... Done TestRand __________ results = 1200x1 TestResult array with properties: Name Passed Failed Incomplete Duration Details Totals: 1200 Passed, 0 Failed, 0 Incomplete. 11.4023 seconds testing time.

提示

  • 当您选择一个并行运行的测试套件时,请考虑可能的资源争用。例如,如果您的测试fixture访问全局资源,例如同一网络上的数据库或共享文件,那么并行会话可能会彼此冲突。在这种情况下,可以考虑使用预先构建的共享测试夹具。

  • 在远程并行池上运行测试时(需要MATLAB并行服务器和并行计算工具箱),MATLAB首先将包含测试的本地文件夹复制到远程工作者。为了最小化与此步骤相关的开销,请确保这些文件夹只包含与您的测试相关的文件。

版本历史

在R2015a中引入

全部展开