主要内容

runInParallel

クラス:matlab.unittest.TestRunner
パッケ,ジ:matlab.unittest

配列TestSuite内のすべてのテストを並列実行

説明

结果= running parallel (跑步者套件は指定したテストスイートをグループに分け,指定したテストランナーを使用して現在の並列プール上で各グループを実行します。次にメソッドはTestResultオブジェクトの配列に結果を返します。

テストが並列実行されると,テストス®ワ,カ,で個別に実行されます。たとえば,テストクラスにTestClassSetupメソッドがある場合,このメソッドにより各ワ,カ,でロ,カルに実行されます。ワ,カ,は対応するTestSuite要素の情報を使用してテストを実行します。各TestSuite要素は,ス测试メソッド,テストクラスおよび共有テストフィクスチャに関する情報をワ,カ,に提供します。

メモ

runInParallelメソッドを使用するには并行计算工具箱™が必要です。テストフレ,ムワ,クによって、グループの順序と数、あるいは各グループに含めるテストが異なる場合があります。

入力引数

すべて展開する

並列テストグルプのテストランナ。matlab.unittest.TestRunnerの@ @ンスタンスとして指定します。

テストを並列実行する前に,テストランナ,の構成を検討してください。runInParallelメソッドは個別のテストグル,プを異なるワ,カ,上で実行します。したがって,StopOnFailuresPluginなどの一部のプラグ@ @ンは並列化に適しません。テストフレ,ムワ,クは、カスタム プラグインが可平行的インターフェイスをサブクラス化している場合,そのプラグインを使用したテストの並列実行をサポートします。

並列実行するテストのセット。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();

スaapl . exeトには1200個のテスト要素が含まれます. exe。

テストスapache . apache .トを並列実行します。

result = 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 __________ result = 1200x1 TestResult array with properties: Name Passed Failed Incomplete Duration Details Totals: 1200 Passed, 0 Failed, 0 Incomplete. 11.4023 seconds testing time.

ヒント

  • 並列実行するテストス。たとえば,テストフィクスチャが同じネットワーク上のデータベースや共有ファイルなどのグローバルリソースにアクセスする場合,並列セッション間で競合が発生することがあります。その場合には,プリビルドされた共有テストフィクスチャの使用を検討してください。

  • リモ、ト並列プ、ル(MATLAB并行服务器および并行计算工具箱が必要)でテストを実行すると,MATLABはまずテストが含まれているローカルフォルダーをリモートワーカーにコピーします。このステップに伴うオーバーヘッドを最小化するために,必ず,これらのフォルダーにはテストに関連したファイルのみが含まれているようにしてください。

バ,ジョン履歴

R2015aで導入

すべて展開する