append

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

Добавьте данные в детали результата испытаний

Описание

пример

append(resultDetails,field,data) добавляет data к field из Details свойство TestResult массив. Если field не существует, метод добавляет его в Details структура и хранилища data в добавленном поле.

Когда вы вызываете append в рамках сменного метода класса добавлять операция применяется ко всему TestResult объекты затронуты сменным методом. Например, если вы вызываете append в рамках runSession метод TestRunnerPlugin, затем те же данные добавляются ко всему TestResult объекты, принадлежащие сеансу тестирования.

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

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

Модификатор результата испытаний детализирует в виде экземпляра matlab.unittest.plugins.plugindata.ResultDetails класс.

Имя поля в виде вектора символов или строкового скаляра. Допустимые имена полей начинаются с буквы и могут содержать буквы, цифры и символы нижнего подчеркивания. Максимальная длина имени поля является значением что namelengthmax функция возвращается.

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

Можно вызвать append метод на определенном поле и добавляет данные к тому полю так много раз, как вы хотите. Если вы добавляете элементы различающихся классов к полю, MATLAB® преобразует некоторые элементы так, чтобы все элементы в поле имели тот же тип. Для получения дополнительной информации смотрите Допустимые Комбинации в отличие от Классов.

Примеры

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

Среда тестирования может разделить тестовый набор на отдельные группы и запуститься, каждая группа на текущем параллельном пуле (требует Parallel Computing Toolbox™). Создайте плагин, который добавляет номер группы в TestResult объекты.

В файле в вашей текущей папке создайте parallelizable сменный класс ExamplePlugin, который заменяет runTestSuite метод TestRunnerPlugin. Добавьте Group поле, содержащее номер группы к Details свойство TestResult объекты, соответствующие группе.

classdef ExamplePlugin < ...
        matlab.unittest.plugins.TestRunnerPlugin & ...
        matlab.unittest.plugins.Parallelizable
    
    methods (Access = protected)
        function runTestSuite(plugin,pluginData)
            
            % Inspect pluginData to get the TestSuite group number
            groupNumber = pluginData.Group;
            
            % Add the group number to TestResult objects
            resultDetails = pluginData.ResultDetails;
            resultDetails.append('Group',groupNumber)
            
            % Invoke the superclass method
            runTestSuite@matlab.unittest.plugins.TestRunnerPlugin(plugin,pluginData);
        end    
    end
end

В вашей текущей папке создайте файл с именем ExampleTest.m содержа этот параметрированный тестовый класс. Этот класс приводит к 300 тестам для сравнения псевдослучайных целых чисел между 1 и 10.

classdef ExampleTest < matlab.unittest.TestCase
    properties (TestParameter)
        num1 = num2cell(randi(10,1,10));
        num2 = num2cell(randi(10,1,10));
    end
    
    methods(Test)
        function testAssert(testCase,num1,num2)
            testCase.assertNotEqual(num1,num2)
        end
        function testVerify(testCase,num1,num2)
            testCase.verifyNotEqual(num1,num2)
        end
        function testAssume(testCase,num1,num2)
            testCase.assumeNotEqual(num1,num2)
        end
    end
end

В командной строке создайте тестовый набор из ExampleTest класс.

suite = testsuite('ExampleTest');

Создайте TestRunner экземпляр без плагинов, добавляет ExamplePlugin бегуну, и затем запущенный тесты параллельно.

import matlab.unittest.TestRunner
runner = TestRunner.withNoPlugins;
runner.addPlugin(ExamplePlugin)
result = runner.runInParallel(suite);
Split tests into 18 groups and running them on 6 workers.
----------------
Finished Group 1
----------------

----------------
Finished Group 2
----------------

----------------
Finished Group 3
----------------

----------------
Finished Group 4
----------------

----------------
Finished Group 5
----------------

----------------
Finished Group 6
----------------

----------------
Finished Group 7
----------------

----------------
Finished Group 8
----------------

----------------
Finished Group 9
----------------

-----------------
Finished Group 10
-----------------

-----------------
Finished Group 11
-----------------

-----------------
Finished Group 12
-----------------

-----------------
Finished Group 13
-----------------

-----------------
Finished Group 14
-----------------

-----------------
Finished Group 15
-----------------

-----------------
Finished Group 16
-----------------

-----------------
Finished Group 17
-----------------

-----------------
Finished Group 18
-----------------

Получите номер группы для первого и последнего Test элементы.

groupOfFirst = result(1).Details.Group
groupOfLast = result(end).Details.Group
groupOfFirst =

     1


groupOfLast =

    18
Введенный в R2020a