Main Content

storeIn

クラス: matlab.unittest.plugins.Parallelizable
パッケージ: matlab.unittest.plugins

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

R2019b 以降

説明

storeIn(plugin,communicationBuffer,data) は、plugin によって収集された data をバッファー communicationBuffer に格納します。データは、テスト グループの実行中に MATLAB® ワーカーによって収集されます。

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

メモ

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

入力引数

すべて展開する

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

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

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

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

属性

Accessprotected
Sealedtrue

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

すべて展開する

プラグイン クラスで storeIn メソッドを呼び出し、要素数を実行中の TestSuite 配列に格納します。

classdef ExamplePlugin < ...
        matlab.unittest.plugins.TestRunnerPlugin & ...
        matlab.unittest.plugins.Parallelizable
    
    methods (Access = protected)
        function runTestSuite(plugin, pluginData) 
            
            % Display and store running TestSuite size
            suiteSize = numel(pluginData.TestSuite);
            fprintf('### Running %d tests\n', suiteSize)
            plugin.storeIn(pluginData.CommunicationBuffer, suiteSize);

            runTestSuite@matlab.unittest.plugins.TestRunnerPlugin(...
                plugin, pluginData);
        end
        
        function reportFinalizedSuite(plugin, pluginData)
            
            % Retrieve and display finalized TestSuite size
            suiteSize = plugin.retrieveFrom(pluginData.CommunicationBuffer);
            fprintf('### Finished running %d tests\n', suiteSize)

            reportFinalizedSuite@matlab.unittest.plugins.TestRunnerPlugin(...
                plugin, pluginData);
        end
    end
    
end

バージョン履歴

R2019b で導入