runInParallel

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

Запустите все тесты в массиве TestSuite параллельно

Синтаксис

result = runInParallel(runner,suite)

Описание

пример

result = runInParallel(runner,suite) запускает все тесты в массиве TestSuite параллельно и возвращает результаты в объекте TestResult. Метод runInParallel делит suite на отдельные группы и использует runner, чтобы запустить каждую группу на текущем параллельном пуле.

Примечание

Метод runInParallel требует Parallel Computing Toolbox™. Среда тестирования может отличаться порядок и количество групп или который тестирует его, включает в каждую группу.

Когда вы выберете тестовый набор, чтобы запуститься параллельно, рассмотрите возможную конкуренцию ресурса. Например, если ваши глобальные ресурсы доступа к испытательным стендам, такие как совместно используемый файл в той же сети, параллельные сеансы могли конфликтовать друг с другом. В таких случаях рассмотрите использование предварительно созданного разделяемого испытательного стенда.

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

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

Исполнитель тестов для параллельных тестовых групп, заданных как экземпляр matlab.unittest.TestRunner.

Рассмотрите свою настройку исполнителя тестов прежде, чем запустить тесты параллельно. Начиная с выполнений метода runInParallel отдельные группы тестов на различных рабочих некоторые плагины, такие как StopOnFailuresPlugin, не хорошо подходят для распараллеливания. Среда не поддерживает параллелизированные тесты выполнения с помощью исполнителя тестов с пользовательским плагином.

Набор тестов, чтобы запуститься параллельно, заданный как массив matlab.unittest.Test.

Примеры

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

Создайте следующий параметризованный тест в файле в вашей текущей рабочей папке.

classdef TestRand < matlab.unittest.TestCase    
    properties (TestParameter)
        dim1 = createDimensionSizes;
        dim2 = createDimensionSizes;
        dim3 = createDimensionSizes;
        type = {'single','double'};
    end
    
    methods (Test)
        function testRepeatable(testCase,dim1,dim2,dim3)
            state = rng;
            firstRun = rand(dim1,dim2,dim3);
            rng(state)
            secondRun = rand(dim1,dim2,dim3);
            testCase.verifyEqual(firstRun,secondRun);
        end
        function testClass(testCase,dim1,dim2,type)
            testCase.verifyClass(rand(dim1,dim2,type),type)
        end
    end
end
 
function sizes = createDimensionSizes
% Create logarithmicly spaced sizes up to 100
sizes = num2cell(round(logspace(0,2,10)));
end

В командной строке создайте комплект из TestRand.m и исполнителя тестов, который отображает текст в Командном окне.

suite = matlab.unittest.TestSuite.fromClass(?TestRand);
runner = matlab.unittest.TestRunner.withTextOutput();

Комплект содержит 1 200 тестовых элементов.

Запустите тестовый набор параллельно.

result = runInParallel(runner,suite)
Split tests into 12 groups and running them on 4 workers.
----------------
Finished Group 2
----------------
Running TestRand
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
.........
Done TestRand
__________


----------------
Finished Group 4
----------------
Running TestRand
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
.....
Done TestRand
__________


----------------
Finished Group 3
----------------
Running TestRand
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
.......
Done TestRand
__________


----------------
Finished Group 1
----------------
Running TestRand
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..
Done TestRand
__________


----------------
Finished Group 7
----------------
Running TestRand
..........
..........
..........
..........
..........
..........
..........
..........
..........
.........
Done TestRand
__________


----------------
Finished Group 5
----------------
Running TestRand
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
...
Done TestRand
__________


----------------
Finished Group 6
----------------
Running TestRand
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
.
Done TestRand
__________


----------------
Finished Group 8
----------------
Running TestRand
..........
..........
..........
..........
..........
..........
..........
..........
..........
.......
Done TestRand
__________


-----------------
Finished Group 11
-----------------
Running TestRand
..........
..........
..........
..........
..........
..........
..........
..........
..........
.
Done TestRand
__________


-----------------
Finished Group 12
-----------------
Running TestRand
..........
..........
..........
..........
..........
..........
..........
..........
........
Done TestRand
__________


-----------------
Finished Group 10
-----------------
Running TestRand
..........
..........
..........
..........
..........
..........
..........
..........
..........
...
Done TestRand
__________


----------------
Finished Group 9
----------------
Running TestRand
..........
..........
..........
..........
..........
..........
..........
..........
..........
.....
Done TestRand
__________



result = 

  1200x1 TestResult array with properties:

    Name
    Passed
    Failed
    Incomplete
    Duration
    Details

Totals:
   1200 Passed, 0 Failed, 0 Incomplete.
   11.4023 seconds testing time.

Представленный в R2015a