runInParallel

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

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

Описание

пример

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

Примечание

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

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

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

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

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

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

Набор тестов, чтобы запуститься параллельно, заданный как 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

Для просмотра документации необходимо авторизоваться на сайте