Main Content

storeIn

クラス: matlab.unittest.plugins.Parallelizable
名前空間: matlab.unittest.plugins

テスト グループに対して収集されたデータの格納

R2019b 以降

説明

storeIn(plugin,buffer,data) は、プラグインを使用して収集されたデータを指定された通信バッファーに格納します。データは、テスト グループの実行中に、MATLAB® ワーカーによって buffer に格納されなければなりません。

テストを並列実行するために、テスト フレームワークは元のテスト スイートをグループに分割し、それらを現在の並列プール上のワーカーに割り当てます (Parallel Computing Toolbox™ が必要)。ワーカーがデータを格納できるようにするには、runTestSuite メソッドのスコープ内で storeIn を呼び出します。MATLAB クライアントは、reportFinalizedSuite のスコープ内で retrieveFrom メソッドを呼び出すことによって格納されたデータを取得できます。

メモ

storeIn を新たに呼び出すたびに、以前に格納したデータが上書きされます。そのため、バッファーへの書き込みは、runTestSuite メソッドのスコープ内で 1 回のみ行います。複数のデータ項目を格納する必要がある場合には、適切なデータ型を使用してすべてのデータ項目を data に含めます。

入力引数

すべて展開する

プラグイン。matlab.unittest.plugins.Parallelizable インターフェイスをサブクラス化するプラグイン クラスのインスタンスとして指定します。

ワーカーがデータを格納するバッファー。matlab.unittest.plugins.plugindata.CommunicationBuffer オブジェクトとして指定します。buffer は、runTestSuite メソッドに渡される TestSuiteRunPluginData インスタンスのプロパティを表します。

バッファーに格納するデータ。任意のデータ型の値として指定します。たとえば、数値スカラー、string 配列、構造体、MATLAB オブジェクトを指定できます。

Parallel Computing Toolbox は、ワーカー側で data をシリアル化し、buffer に格納して、クライアント側でそれを逆シリアル化します。したがって、data は保存と読み込みの操作をサポートしていなければなりません。詳細については、オブジェクトの保存と読み込みのプロセスを参照してください。

属性

Accessprotected
Sealedtrue

メソッドの属性の詳細については、メソッドの属性を参照してください。

すべて展開する

既存のテスト グループ内の実行中のテストと確定したテストの数を表示する並列化可能プラグインを作成します。実行中のグループに含まれるテストの数を格納するには、storeIn メソッドを runTestSuite メソッド内で呼び出します。

classdef ExamplePlugin < ...
        matlab.unittest.plugins.TestRunnerPlugin & ...
        matlab.unittest.plugins.Parallelizable
    
    methods (Access = protected)
        function runTestSuite(plugin,pluginData) 
            % Display and store running test suite size
            suiteSize = numel(pluginData.TestSuite);
            fprintf("### Running %d test(s)\n",suiteSize)
            plugin.storeIn(pluginData.CommunicationBuffer,suiteSize);
            
            % Invoke the superclass method
            runTestSuite@ ...
                matlab.unittest.plugins.TestRunnerPlugin(plugin,pluginData)
        end
        
        function reportFinalizedSuite(plugin,pluginData)
            % Retrieve and display finalized test suite size
            suiteSize = plugin.retrieveFrom(pluginData.CommunicationBuffer);
            fprintf("### Finished running %d test(s)\n",suiteSize)

            % Invoke the superclass method
            reportFinalizedSuite@ ...
                matlab.unittest.plugins.TestRunnerPlugin(plugin,pluginData)
        end
    end
end

バージョン履歴

R2019b で導入