exponenta event banner

приложить

Класс: 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 ® преобразует некоторые элементы так, чтобы все элементы в поле были одного типа. Дополнительные сведения см. в разделе Допустимые комбинации непохожих классов.

Примеры

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

Платформа тестирования может разделить набор тестов на отдельные группы и запустить каждую группу в текущем параллельном пуле (требуется 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