exponenta event banner

класс matlab.unittest.plugins.plugindata.ResultDetails

Пакет: matlab.unittest.plugins.plugindata

Класс для изменения подробных данных результатов теста

Описание

ResultDetails класс включает TestRunnerPlugin для изменения Details свойство TestResult массив. Для изменения Details структура, вызовите метод ResultDetails в рамках метода класса плагина. TestRunner создает экземпляр этого класса, поэтому не требуется создавать объект класса напрямую.

Примечание

Окончательные результаты теста не могут быть изменены ResultDetails. Результат теста завершается, когда невозможно изменить квалификацию.

Методы

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

Примеры

свернуть все

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