Можно использовать среду MATLAB® Unit Test, чтобы запустить тесты, созданные в Simulink® Test™. Используя среду Модульного теста MATLAB:
Позволяет вам выполнять тесты модели вместе со скриптами Модульного теста MATLAB, функциями и классами.
Включает тестирование модели и кода с помощью той же среды.
Включает интеграцию с системами непрерывного интегрирования (CI), такими как Jenkins™.
Запускать тесты с Модульным тестом MATLAB:
Создайте TestSuite
из файла Simulink Test.
Создайте TestRunner
.
Создайте сменные объекты настроить TestRunner
. Например:
matlab.unittest.plugins.TAPPlugin
производит поток результатов согласно Test Anything Protocol для использования с определенными системами CI.
sltest.plugins.ModelCoveragePlugin
задает набор покрытия модели и делает результаты покрытия доступными из командной строки.
Добавьте плагины в TestRunner
.
Запустите тест с помощью run
метод или запущенные тесты в параллели с помощью runInParallel
метод.
При выполнении тестового использования Модульный тест MATLAB рассмотрите следующее:
Если вы отключаете тест в менеджере по Тесту, тест отфильтрован с помощью Модульного теста MATLAB, и результат отражает не пройдено предположение.
Модульный тест MATLAB имеет аналогичные свойства к функциональности в Simulink Test. Например,
Если тест содержит итерации, Модульный тест MATLAB содержит параметризацию.
Если тестовый файл или тестовый набор содержат коллбэки, Модульный тест MATLAB содержит один или несколько фиксаторов коллбэков.
детали параметризации соответствуют свойствам итерации.
Simulink Test | Matlab.unittest |
---|---|
Тип итерации: В виде сценария | свойство параметризации: |
Тип итерации: Таблица | свойство параметризации: |
Имя итерации | Имя параметризации |
Объект итерации теста | Значение параметризации |
Фиксаторы зависят от коллбэков, содержавшихся в тестовом файле. Фиксаторы не включают коллбэки теста, которые выполняются с самим тестом.
Коллбэки в Simulink Test | Фиксаторы в модульном тесте MATLAB |
---|---|
Коллбэки тестового файла |
|
Коллбэки тестового набора |
|
Файл и коллбэки комплекта | Неоднородный |
Никакие коллбэки | Никакой фиксатор |
В этом примере показано, как создать и запустить основной MATLAB® Unit Test для тестового файла, созданного в Simulink® Test™. Вы создаете тестовый набор, запускаете тест и отображаете диагностический отчет.
Прежде, чем запустить этот пример, временно отключите предупреждения тот результат отказов верификации.
warning off Stateflow:Runtime:TestVerificationFailed; warning off Stateflow:cdr:VerifyDangerousComparison;
1. Создайте тестовый файл в менеджере по Тесту или запуститесь с существующего ранее тестового файла. В данном примере AutopilotTestFile
тестирует компонент системы автопилота против нескольких требований, с помощью verify
операторы.
2. Создайте TestSuite
от тестового файла.
apsuite = testsuite('AutopilotTestFile.mldatx');
3. Запустите тест, создав TestResult
объект. Командное окно возвращает предупреждения в verify
отказы оператора.
apresults = run(apsuite);
Setting up FileCallbacksFixture ================================================================================ Error occurred in sltest.testmanager.fixtures.FileCallbacksFixture. As a result, all tests using this fixture failed and did not run to completion. --------- Error ID: --------- 'RTW:buildProcess:cacheDirContainsTmpDir' -------------- Error Details: -------------- Error using Simulink.fileGenControl>locValidateCacheFolder (line 552) Terminating build process. The system temporary folder (/tmp/BR2020ad_1302590_239645/mlx_to_docbook1) is a subfolder of 'CacheFolder' (/tmp/BR2020ad_1302590_239645/mlx_to_docbook1), which is not supported. Change the system temporary folder so that it is not a subfolder of 'CacheFolder'. Error in Simulink.fileGenControl>locUpdatePath (line 506) locValidateCacheFolder(cacheFolder); Error in Simulink.fileGenControl (line 258) [cacheFolder,codeGenFolder] = locUpdatePath(oldPaths,newPaths,opts); Error in sltest.testmanager.fixtures.CallbacksFixture/setup (line 27) evalin('base', callback); ================================================================================ Done setting up FileCallbacksFixture __________ Tearing down FileCallbacksFixture Done tearing down FileCallbacksFixture: Invoked cleanup callback of "AutopilotTestFile". __________ Failure Summary: Name Failed Incomplete Reason(s) ================================================================================================= AutopilotTestFile > Basic Design Test Cases/Requirement 1.3 Test X X Errored.
4. Чтобы посмотреть детали теста, отобразите Report
свойство DiagnosticRecord
объект. Запись показывает что проверка не выполнена во время теста.
apresults.Details.DiagnosticRecord.Report
ans = 'Error occurred in sltest.testmanager.fixtures.FileCallbacksFixture. As a result, all tests using this fixture failed and did not run to completion. --------- Error ID: --------- 'RTW:buildProcess:cacheDirContainsTmpDir' -------------- Error Details: -------------- Error using Simulink.fileGenControl>locValidateCacheFolder (line 552) Terminating build process. The system temporary folder (/tmp/BR2020ad_1302590_239645/mlx_to_docbook1) is a subfolder of 'CacheFolder' (/tmp/BR2020ad_1302590_239645/mlx_to_docbook1), which is not supported. Change the system temporary folder so that it is not a subfolder of 'CacheFolder'. Error in Simulink.fileGenControl>locUpdatePath (line 506) locValidateCacheFolder(cacheFolder); Error in Simulink.fileGenControl (line 258) [cacheFolder,codeGenFolder] = locUpdatePath(oldPaths,newPaths,opts); Error in sltest.testmanager.fixtures.CallbacksFixture/setup (line 27) evalin('base', callback);'
Включите предупреждения.
warning on Stateflow:Runtime:TestVerificationFailed; warning on Stateflow:cdr:VerifyDangerousComparison;
Test
| TestResult
| TestRunner
| TestSuite
| matlab.unittest.plugins Package