Тест MATLAB®-based Simulink® задан в коде MATLAB (.m
) файл, который вы создаете в MATLAB, и затем открываете, запускаете и просматриваете результаты в менеджере по Тесту. Тестовый файл является файлом определения класса, который наследовался sltest.TestCase
. Наследование позволяет вам открыть тестовый файл в менеджере по Тесту. Когда вы открываете тестовый файл MATLAB в менеджере по Тесту, это появляется и ведет себя то же самое как тест, созданный в менеджере по Тесту, несмотря на то, что с некоторой ограниченной функциональностью (см. Ограничения MATLAB - базирующиеся Тесты). В дополнение к использованию MATLAB тестируют в менеджере по Тесту, можно использовать его в командной строке как любой другой файл модульного теста.
Поскольку эти тестовые файлы являются текстом (.m
) файлы, можно отредактировать, выдержать сравнение с и объединить с другим .m
тестовые файлы и ссылка от файла до требований. В отличие от этого тестовые файлы, созданные в менеджере по Тесту или при помощи API Simulink Test™, сохранены как бинарные файлы MLDATX.
sltest.TestCase
класс и его методы работают в частности с тестами MATLAB. Можно использовать эти методы в тестовых файлах и в командной строке, за исключением sltest.TestCase.forInteractiveUse
, который может только использоваться в командной строке. В дополнение к этим методам можно использовать matlab.unittest.TestCase
методы с тестами MATLAB.
Класс, которому можно наследоваться | |
Модель Loads | |
Модель Simulate | |
Примите, что два набора данных эквивалентны | |
Утверждайте, что два набора данных эквивалентны | |
Критический утверждают, что два набора данных эквивалентны | |
Проверьте, что два набора данных эквивалентны | |
Создайте тест для использования в командной строке | |
Создайте временную папку, которая удалена, когда тест выходит из осциллографа | |
createSimulationInput | Создает Simulink.SimulationInput или sltest.harness.SimulationInput объект. |
sltest.harness.SimulationInput
создает объект, который можно использовать, чтобы указать, что изменения применились к тестовой обвязке в процессе моделирования. В дополнение к использованию этого класса для основанных на MATLAB тестов Simulink можно использовать его в другом коде MATLAB.
Эти методы matlab.unittest.TestRunner
применяйтесь в частности к основанным на MATLAB тестам Simulink.
matlab.unittest.TestRunner.addModelCoverage
— включает набор покрытия модели с помощью исполнителя тестов.
matlab.unittest.TestRunner.addSimulinkTestResults —
результаты испытаний нажатий менеджеру по Simulink Test.
Они sltest.plugins
классы добавляют функциональность для основанных на MATLAB тестов. В дополнение к этим методам можно использовать другой sltest.plugins
классы с этими тестами. Плагины могут быть присоединены к matlab.unittest.TestRunner
добавлять функциональность при выполнении sltest.TestCase
тест.
Позвольте интегрировать тестовую симуляцию MATLAB и результаты испытаний с менеджером по Тесту | |
Позвольте писать вывод текста, чтобы Протестировать результаты менеджера панель Logged Signals менеджера по Тесту | |
Позвольте собрать покрытие модели |
Создать базовый тест MATLAB:
Создайте код MATLAB (.m
) файл, который задает тесты. Можно запустить редактор MATLAB из командной строки, или от менеджера по Тесту при помощи New> MATLAB-Based Simulink Test (.m).
Смотрите Создание модульных тестов на основе классов в MATLAB. Единственная разница для тестов MATLAB - то, что класс должен наследоваться sltest.TestCase
, вместо от matlab.unittest.TestCase
.
Этот демонстрационный тестовый файл MATLAB включает один тест, который задан в testOne
функция. Когда вы запускаете тест в менеджере по Тесту, контрольные нагрузки модель под названием sltestMATLABBasedTestExample
. Это затем устанавливает значение gain2_var
переменная, и симулирует модель. Наконец, тест сравнивает симуляцию модели выход с базовым файлом MAT данных.
classdef myTest < sltest.TestCase methods (Test) function testOne(testCase) testCase.loadSystem... ('sltestMATLABBasedTestExample'); evalin('base','gain2_var = 2.01;'); simOut = testCase.simulate... ('sltestMATLABBasedTestExample'); testCase.verifySignalsMathc(simOut,'baselineOne.mat',... 'AbsTol',0.015); end end end
Если вы используете тестовую обвязку, заменяете simOut
линия в вышеупомянутом тестовом файле MATLAB с
simOut = testCase.simulate('sltestMATLABBasedTestExample',... WithHarness','sltestMATLABBasedTestExample_harness1');
simOut
сin = testCase.createSimulationInput('sltestMATLABBasedTestExample',... WithHarness','sltestMATLABBasedTestExample_harness1'); in.setModelParameter("StopTime","10") simOut = testCase.simulate(in);
Если базовый MAT-файл данных уже не существует или если необходимо обновиться, он, в командной строке MATLAB, использует:
runtests(<test>,'GenerateBaselines',true)
Для файла примера, <test>
''myTest/testOne'
.
Когда вы генерируете базовые линии, тест начинает запускаться. Это делает паузу, чтобы открыть Инспектора Данных моделирования отчет, и вам предлагают в командной строке MATLAB рассмотреть базовые данные. Когда вы утверждаете данные, они сохраняют базовые данные к новому MAT-файлу или обновляют существующий MAT-файл. Затем тест продолжает запускаться, но сбои, потому что новое или обновило базовые данные, не включены в текущий запуск. Повторно выполните тест с помощью runtests
команда, чтобы использовать новую или обновленную базовую линию и привести к передающему результату. Можно также повторно выполнить тест при помощи желтого rerun
гиперссылка в командной строке.
Опционально, если у вас есть лицензия Simulink Coverage™, можно включать набор покрытия в тест. Смотрите Собирают Покрытие Используя Основанные на MATLAB Тесты Simulink для примера и информации о наборе покрытия.
Опционально, если у вас есть лицензия Simulink Requirements™, можно добавить требования. Откройте менеджера по Тесту и обновите тестовый файл.
Нажмите Open> Open MATLAB-Based Simulink Test (.m) и выберите тестовый файл. Загрузки тестового файла и его тестовая иерархия отображаются в панели Test Browser. Если вы выбираете тестовый файл, Requirements и панели Test File Content появляются в менеджере по Тесту.
Добавьте требования путем расширения раздела Requirements путем нажатия на Add, чтобы открыть Исходящий Редактор Ссылок. Смотрите Ссылку на Требования для получения информации о добавляющих требованиях.
Обновить код MATLAB (.m
) тестовый файл от менеджера по Тесту, щелкните по ссылке Open test in the MATLAB Editor.
После того, как вы редактируете .m
файл и сохраняет ваши изменения, или после добавляющего покрытия или требований, возвращается к менеджеру по Тесту и нажимает кнопку синхронизации рядом с тестовым файлом в панели Test Browser.
Запустите тест, просмотрите результаты и создайте отчет результатов испытаний.
Нажмите Run, чтобы запустить тест.
Чтобы просмотреть результаты, расширьте строки в панели Results and Artifacts.
Чтобы просмотреть результаты покрытия, в панели Results and Artifacts, выбирают элемент Results и расширяют раздел Aggregated Coverage. Смотрите Собирают Покрытие в Тестах для получения информации.
Опционально, создайте отчет результатов испытаний. Смотрите Генерируют Отчеты Результатов испытаний.
В качестве альтернативы вместо того, чтобы добавить покрытие (Шаг 4) и запустить тест (Шаг 8) в менеджере по Тесту, можно использовать эти команды в командной строке MATLAB, чтобы добавить покрытие, запустить тест и продвинуть результаты менеджеру по Тесту. Затем когда вы открываете менеджера по Тесту, результаты испытаний отображены.
suite = testsuite('myTests'); runner = testrunner('textoutput'); runner.addModelCoverage(... "CollectMetrics",["MCDC","Condition"]); runner.addSimulinkTestResults("ExportToFile",... "testmgr_results.mldatx"); runner.run(suite);
Примечание
У вас должен быть Simulink Requirements, чтобы включать ссылки требований.
Чтобы добавить ссылки к требованиям из файла, отредактированного в редакторе MATLAB, смотрите Трассируемость требований для Линий кода MATLAB (Simulink Requirements). Для тестовых файлов MATLAB вы добавляете ссылки с помощью того же процесса. Однако текст вы выбираете в коде MATLAB (.m
) файл определяет тип ссылки и теста, к которому это добавляется. Если вы выбираете:
Линия определения класса (например, classdef myClass < sltest.TestCase
) — Добавляет Verified By
соединитесь для целого тестового файла
Текст в тестовой функции — Добавляет Verified By
соединитесь для этой функции
Текст через несколько тестовых функций — Добавляет Verified By
соединитесь для первой функции в выборе
Любой другой выбранный текст — Добавляет Related To
соединитесь для выбора
После того, как вы добавите ссылки требований, можно просмотреть состояние верификации в Редакторе Требований путем нажатия на Display> Verification Status. Обновить состояние Verified By
требование, щелкните правой кнопкой по требованию и выберите Run Tests. Смотрите Состояние Верификации Требований Анализа (Simulink Requirements).
Ссылки, которые вы создаете в коде MATLAB (.m
) файл появляется в разделе Requirements менеджера по Тесту. Соединение с требованиями от в менеджере по Тесту работает то же самое как описано в Ссылке на Требования.
Когда у вас есть открытый Редактор Требований, и вы нажимаете на входящую ссылку, которая является для теста MATLAB, если у вас есть лицензия Simulink Test, менеджер по Тесту открывается и переходит к связанному тесту. Если лицензия не доступна, редактор MATLAB открывается и переходит к строке кода, сопоставленной с тем требованием.
Для параметрированного теста Simulink Requirements не поддерживает соединение с параметрированными версиями индивидуума теста. В вашем .m
файл, если вы создаете ссылку от параметрированного теста до требования, ссылка, сопоставлен со всеми версиями того теста. В менеджере по Тесту, если вы создаете ссылку из версии параметрированного теста к требованию, ссылка сопоставлена со всеми версиями того теста.
Основанные на MATLAB тесты Simulink не поддерживают:
Протестируйте типы кроме базовых тестов.
Запущение тестов параллельно.
Запущение тестов в нескольких релизах.
Протестируйте теги и описания.
Коллбэки. (Однако, в то время как коллбэки не поддерживаются в менеджере по Тесту по основанным на MATLAB тестам, можно использовать TestClassSetup
и TestMethodSetup
, или фиксаторы в вашем .m
файл, чтобы достигнуть схожей функциональности. См., что Написание кода для настройки и деинициализации Использует Классы.)
Логические и временные оценки.
matlab.unittest.TestCase
| matlab.unittest.TestRunner
| matlab.unittest.TestRunner.addModelCoverage
| matlab.unittest.TestRunner.addSimulinkTestResults
| sltest.TestCase