append

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

Добавьте данные к деталям результатов тестирования

Описание

пример

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

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

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

расширить все

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

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

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

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

Примеры

расширить все

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

В файле в текущей папке создайте класс параллелизируемого плагина 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