Скомпилируйте модульные тесты MATLAB

То, когда вы тесты записи с помощью среды модульного тестирования MATLAB®, можно создать автономное приложение (требует MATLAB Compiler™) чтобы запустить тесты на целевых машинах, которым не установили MATLAB:

  • Чтобы скомпилировать ваш код MATLAB, используйте приложение Application Compiler (MATLAB Compiler) или запуститесь mcc (MATLAB Compiler) команда.

  • Чтобы запустить автономные приложения, установите MATLAB Runtime. (Если вы используете приложение Application Compiler, можно решить, включать ли инсталлятор MATLAB Runtime в сгенерированное приложение.) Для получения дополнительной информации, смотрите Установку и Сконфигурируйте MATLAB Runtime (MATLAB Compiler).

MATLAB Compiler поддерживает только модульные тесты, основанные на классах. (Вы не можете скомпилировать или функциональные модульные тесты на основе скриптов.), Кроме того, MATLAB Compiler в настоящее время не поддерживает созданное использование тестов среды тестирования эффективности.

Запустите тесты с автономными приложениями

В этом примере показано, как создать автономное приложение от ваших модульных тестов и запустить сгенерированное приложение из окна терминала (на платформе Microsoft® Windows®).

В файле с именем TestRand.m в вашей текущей папке создайте параметрированный тестовый класс, который тестирует генератор случайных чисел MATLAB (см. Сводные данные Определения класса TestRand).

В вашей текущей папке создайте runMyTests функция. Эта функция создает тестовый набор из TestRand класс, запускает тесты и отображает результаты испытаний.

function runMyTests
suite = matlab.unittest.TestSuite.fromClass(?TestRand);
runner = matlab.unittest.TestRunner.withNoPlugins;
results = runner.run(suite);
disp(results)
end

Скомпилируйте runMyTests функция в автономное приложение путем выполнения mcc команда в Командном окне. MATLAB Compiler генерирует приложение в вашей текущей папке.

mcc -m runMyTests

Откройте окно терминала, перейдите к папке, в которую вы упаковали свое автономное приложение и запустили приложение.

C:\work>runMyTests
  1x1200 TestResult array with properties:

    Name
    Passed
    Failed
    Incomplete
    Duration
    Details

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

Для получения дополнительной информации о том, как создать и запустить автономные приложения, видит, Создают Автономные приложения из Командной строки (MATLAB Compiler).

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

Начиная в R2020b, можно создать автономные приложения, которые поддерживают запускающие тесты параллельно (требует Parallel Computing Toolbox™). Эта функция требует, чтобы вы использовали направляющий %#function parallel.Pool в файле, который инициировал тестовый прогон. %#function (MATLAB Compiler) прагма сообщает MATLAB Compiler что parallel.Pool Объект (Parallel Computing Toolbox) должен быть включен в компиляцию, чтобы обеспечить доступ к параллельному пулу.

Например, считайте тесты в файле TestRand.m. Можно создать автономное приложение, чтобы запустить эти тесты параллельно путем компиляции этой функции.

function runMyTestsInParallel
%#function parallel.Pool
results = runtests('TestRand.m','UseParallel',true);
disp(results)
end

Скомпилируйте функцию в автономное приложение с помощью mcc команда. Чтобы дать MATLAB Compiler команду включать тестовый файл в приложение, задайте имя файла с помощью -a опция.

mcc -m runMyTestsInParallel -a TestRand.m

Сводные данные определения класса TestRand

Этот код предоставляет полное содержимое TestRand класс.

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 logarithmically spaced sizes up to 100
sizes = num2cell(round(logspace(0,2,10)));
end

Смотрите также

| | | | (MATLAB Compiler)

Похожие темы