本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

storeIn

类: matlab.unittest.plugins.Parallelizable
包: matlab.unittest.plugins

存储一组测试的收集数据

说明

示例

storeIn(plugin,communicationBuffer,data)plugin 收集的 data 存储在缓冲区 communicationBuffer 中。数据由 MATLAB® 工作进程在进行一组测试时收集。

为了并行运行测试,测试框架将原始 TestSuite 数组分成不同组,并将这些组分配给当前并行池中的工作进程(需要 Parallel Computing Toolbox™)。要使工作进程能够存储其数据,请在 TestRunnerPluginrunTestSuite 方法的作用域内调用 storeIn。MATLAB 客户端可以通过在 reportFinalizedSuite 的作用域内调用 retrieveFrom 方法来检索存储的数据。

注意

每次重新调用 storeIn 都会覆盖以前存储的数据。因此,在 runTestSuite 方法的作用域内,只对缓冲区进行一次写入。如果您需要存储几个数据项,请使用适当的数据类型将它们全部包含在 data 中。

输入参数

全部展开

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

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

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

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