То, когда вы тесты записи с помощью среды модульного тестирования 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
класс.
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
run (TestRunner)
| run (TestSuite)
| runInParallel
| runtests
| mcc
(MATLAB Compiler)