Main Content

retrieveFrom

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

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

R2019b 以降

説明

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

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

data = retrieveFrom(plugin,buffer,DefaultData=defaultData) は、想定外の状況で buffer が空である場合に、指定された既定のデータを返します。致命的なアサーション エラーによっていずれのワーカーもデータを格納できないなどの状況が該当します。buffer にデータが格納されている場合は、メソッドは格納されているデータを想定どおりに取得します。 (R2024a 以降)

入力引数

すべて展開する

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

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

R2024a 以降

buffer が空の場合に返す既定のデータ。任意のデータ型の値として指定します。

属性

Accessprotected
Sealedtrue

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

すべて展開する

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

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 で導入

すべて展開する