Тестовые модели Используя модульный тест MATLAB

Можно использовать среду MATLAB® Unit Test, чтобы запустить тесты, созданные в Simulink® Test™. Используя среду Модульного теста MATLAB:

  • Позволяет вам выполнять тесты модели вместе со скриптами Модульного теста MATLAB, функциями и классами.

  • Включает тестирование модели и кода с помощью той же среды.

  • Включает интеграцию с системами непрерывного интегрирования (CI), такими как Jenkins™.

Полный рабочий процесс

Запускать тесты с Модульным тестом MATLAB:

  1. Создайте TestSuite из файла Simulink Test.

  2. Создайте TestRunner.

  3. Создайте сменные объекты настроить TestRunner. Например:

    • matlab.unittest.plugins.TAPPlugin производит поток результатов согласно Test Anything Protocol для использования с определенными системами CI.

    • sltest.plugins.ModelCoveragePlugin задает набор покрытия модели и делает результаты покрытия доступными из командной строки.

  4. Добавьте плагины в TestRunner.

  5. Запустите тест с помощью run метод или запущенные тесты в параллели с помощью runInParallel метод.

Факторы

При выполнении тестового использования Модульный тест MATLAB рассмотрите следующее:

  • Если вы отключаете тест в менеджере по Тесту, тест отфильтрован с помощью Модульного теста MATLAB, и результат отражает не пройдено предположение.

Сравнение тестовой номенклатуры

Модульный тест MATLAB имеет аналогичные свойства к функциональности в Simulink Test. Например,

  • Если тест содержит итерации, Модульный тест MATLAB содержит параметризацию.

  • Если тестовый файл или тестовый набор содержат коллбэки, Модульный тест MATLAB содержит один или несколько фиксаторов коллбэков.

Итерации Теста и параметризация Модульного теста MATLAB

детали параметризации соответствуют свойствам итерации.

Simulink Test

Matlab.unittest

Тип итерации: В виде сценария

свойство параметризации: ScriptedIteration

Тип итерации: Таблица

свойство параметризации: TableIteration

Имя итерации

Имя параметризации

Объект итерации теста

Значение параметризации

Протестируйте коллбэки и фиксаторы модульного теста MATLAB

Фиксаторы зависят от коллбэков, содержавшихся в тестовом файле. Фиксаторы не включают коллбэки теста, которые выполняются с самим тестом.

Коллбэки в Simulink Test

Фиксаторы в модульном тесте MATLAB

Коллбэки тестового файла

FileCallbacksFixture

Коллбэки тестового набора

SuiteCallbacksFixture

Файл и коллбэки комплекта

Неоднородный CallbacksFixture, содержа FileCallbacksFixture и SuiteCallbacksFixture

Никакие коллбэки

Никакой фиксатор

Основной рабочий процесс Используя MATLAB® Unit Test

В этом примере показано, как создать и запустить основной 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;

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

| | | |

Похожие темы