storeIn

Класс: matlab.unittest.plugins.Parallelizable
Пакет: matlab.unittest.plugins

Храните данные, собранные для группы тестов

Описание

пример

storeIn(plugin,communicationBuffer,data) хранит data собранный plugin в буферном communicationBuffer. Данные собраны рабочим MATLAB® при запущении группы тестов.

Чтобы запустить тесты параллельно, среда тестирования делит исходный TestSuite массив в отдельные группы и присваивает их рабочим на текущем параллельном пуле (требует Parallel Computing Toolbox™). Чтобы позволить рабочим хранить свои данные, вызовите storeIn в рамках runTestSuite метод TestRunnerPlugin. Клиент MATLAB может получить хранимые данные путем вызова retrieveFrom метод в рамках reportFinalizedSuite.

Примечание

Каждый новый вызов storeIn перезаписывает ранее хранимые данные. Поэтому запишите в буфер только в один раз в рамках runTestSuite метод. Если необходимо сохранить несколько элементов данных, включайте их всех в data использование соответствующего типа данных.

Входные параметры

развернуть все

Сменный объект в виде экземпляра сменного класса, который разделяет на подклассы matlab.unittest.plugins.Parallelizable интерфейс.

Буфер, в котором рабочий хранит данные в виде экземпляра matlab.unittest.plugins.plugindata.CommunicationBuffer класс. communicationBuffer представляет свойство matlab.unittest.plugins.plugindata.TestSuiteRunPluginData экземпляр, который передается runTestSuite метод.

Данные, чтобы сохранить в буфере в виде скаляра или массива объектов. Например, можно задать data в виде числа, массива строк, массива ячеек, структуры или объекта класса.

Parallel Computing Toolbox сериализирует data на стороне рабочего, сохраняет его в communicationBuffer, и десериализовывает его на клиентской стороне. data должен правильно упростить быть сохраненным и загруженным. Для получения дополнительной информации смотрите, Сохраняют и Процесс Загрузки для Объектов.

Примеры

развернуть все

Вызовите 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