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 方法的作用域内,只对缓冲区进行一次写入。如果您需要存储几个数据项,请使用适当的数据类型将它们全部包含在 data 中。

输入参数

全部展开

插件,指定为插件类的实例,该插件类子类化 matlab.unittest.plugins.Parallelizable 接口。

工作进程用来存储数据的缓冲区,指定为 matlab.unittest.plugins.plugindata.CommunicationBuffer 对象。buffer 表示传递给 runTestSuite 方法的 TestSuiteRunPluginData 实例的属性。

要存储在缓冲区中的数据,指定为任何数据类型的值。例如,您可以指定数值标量、字符串数组、结构体或 MATLAB 对象。

Parallel Computing Toolbox 在工作进程端序列化 data,将其存储在 buffer 中,并在客户端对其进行反序列化。因此,data 必须支持保存和加载操作。有关详细信息,请参阅对象的保存和加载过程

属性

Accessprotected
Sealedtrue

要了解方法的属性,请参阅方法属性

示例

全部展开

创建一个可并行化的插件,显示现有测试组中正在运行的和已最终化的测试的数量。要存储一个运行组中的测试数目,请在 runTestSuite 方法中调用 storeIn 方法。

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 中推出