Main Content

matlab.unittest.plugins.plugindata.ResultDetails クラス

パッケージ: matlab.unittest.plugins.plugindata

テスト結果の詳細を変更するためのクラス

説明

ResultDetails により、TestRunnerPlugin インスタンスは TestResult 配列の Details プロパティを変更できます。Details 構造体を変更するには、プラグイン クラス メソッドのスコープ内で ResultDetails のメソッドを呼び出します。TestRunner はこのクラスをインスタンス化するため、クラスのオブジェクトを直接作成する必要はありません。

メモ

ResultDetails で確定したテスト結果を変更することはできません。テスト結果は、検定が結果を変更できなくなると確定されます。

メソッド

すべて展開する

すべて折りたたむ

テスト フレームワークは、テスト スイートをグループに分け、現在の並列プール上で各グループを実行できます (Parallel Computing Toolbox™ が必要)。グループ番号を TestResult オブジェクトに追加するプラグインを作成します。

現在のフォルダー内のファイルに、TestRunnerPluginrunTestSuite メソッドをオーバーライドする、並列化可能なプラグイン クラス ExamplePlugin を作成します。グループ番号を含む 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 という名前のファイルを作成します。このクラスでは、1 から 10 の間の整数の疑似乱数を比較するテストが 300 回行われます。

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

バージョン履歴

R2020a で導入