Этот пример показывает вам, как подтвердить выход алгоритма круиз-контроля с помощью Vehicle Network Toolbox и MATLAB основанная на классах среда модульного тестирования.
Это использует класс модульного теста MATLAB tCruiseControlAlgorithmVerifier.m
обеспечить входные команды через Сеть области контроллера (CAN) к модели Simulink алгоритма круиз-контроля, чтобы инициировать функциональное поведение алгоритма, и затем получает обратную связь от модели до CAN и подтверждает ожидаемое поведение алгоритма. Это также генерирует отчет PDF результатов испытаний, которые могут использоваться для анализа. Для получения дополнительной информации о том, как записать тестовый класс, смотрите tCruiseControlAlgorithmVerifier.m
файл. Диалоговое окно в том классе помогает вам изучить метод подготовки тестового класса и что делает каждый отдельный тест.
Этот пример использует MathWorks виртуальные каналы CAN, чтобы связаться с алгоритмом.
Алгоритм круиз-контроля имеет блок Virtual CAN Inputs, который содержит настройку канала CAN с помощью Блока Configuration CAN и получает сообщение, управлял от тестового класса MATLAB с помощью блока CAN Receive. Это затем использует блок CAN Unpack, чтобы разделить отдельные сигналы от полученного сообщения CAN, которые затем преобразованы в их соответствующие типы данных и переданы к фактическому алгоритму круиз-контроля.
Блочные дома Алгоритма Круиз-контроля Конечный автомат Алгоритма Круиз-контроля, который является диаграммой Stateflow. Этот алгоритм работает на основе входных параметров, полученных от блока Virtual CAN Inputs, и является настройкой, чтобы инициировать, когда входные условия достигли определенного условия. Выходные параметры диаграммы Stateflow являются ожидаемой крейсерской скоростью транспортного средства и состоянием обязательства алгоритма.
Блок Virtual CAN Outputs использует блок CAN Pack, чтобы загрузить отдельные сигналы в одно сообщение CAN, которые затем передаются на шину CAN с помощью блока CAN Transmit. Это сообщение обратной связи используется для верификации в тестовом классе MATLAB.
Создайте набор тестовых классов, чтобы запуститься. В этом примере, tCruiseControlAlgorithmVerifier.m
единственный тест в наборе. Можно добавить дополнительные тесты в том же тестовом наборе. 1xN Тестовые списки массива количество тестов, не количество тестовых классов.
suite = testsuite("tCruiseControlAlgorithmVerifier")
suite = 1x3 Test array with properties: Name ProcedureName TestClass BaseFolder Parameterization SharedTestFixtures Tags Tests Include: 0 Parameterizations, 0 Shared Test Fixture Classes, 0 Tags.
Создайте исполнителя тестов, чтобы выполнить набор тестов в тестовом наборе. Это задает бегуна без специальных плагинов.
runner = matlab.unittest.TestRunner.withNoPlugins
runner = TestRunner with properties: ArtifactsRootFolder: "/tmp/BR2021bd_1751886_255755/mlx_to_docbook1" PrebuiltFixtures: [1x0 matlab.unittest.fixtures.Fixture]
Setup имя файла PDF, в котором вы хотите, чтобы ваш выход был получен.
pdfFile = "CruiseControlAlgorithmTestReport.pdf"
pdfFile = "CruiseControlAlgorithmTestReport.pdf"
Добавьте плагин создания PDF в своего исполнителя тестов. Во-первых, создайте плагин.
plugin = matlab.unittest.plugins.TestReportPlugin.producingPDF(pdfFile)
plugin = PDFTestReportPlugin with properties: IncludeCommandWindowText: 0 IncludePassingDiagnostics: 0 LoggingLevel: Terse PageOrientation: 'portrait'
Сопоставьте этот плагин с исполнителем тестов, чтобы сгенерировать отчет PDF в рабочей директории.
runner.addPlugin(plugin)
Запустите тестовый набор с помощью исполнителя тестов.
result = runner.run(suite)
Generating test report. Please wait. Preparing content for the test report.
Adding content to the test report. Writing test report to file. Test report has been saved to: /tmp/BR2021bd_1751886_255755/mlx_to_docbook1/tp43650a5e/vnt-ex21299704/CruiseControlAlgorithmTestReport.pdf
result = 1x3 TestResult array with properties: Name Passed Failed Incomplete Duration Details Totals: 2 Passed, 1 Failed, 0 Incomplete. 78.3843 seconds testing time.
Откройте файл PDF, созданный с заданным именем. Настройка по умолчанию создает его в текущей рабочей директории. Существует две вещи наблюдать в отчете PDF:
Полный результат утверждает конечный результат на основе того, передали ли все тесты или нет. Круговая диаграмма показывает, сколько тесты передали и привели к сбою из общего количества заданных тестов.
Сводные данные отказа показывают, какой тест провалил и по какой причине.
Нажатие на вкладку деталей на правой стороне имени отказа обеспечивает подробную причину отказа, наряду с диагностическим сообщением, которое вы сконфигурировали в тестах.