Этот пример показывает вам, как подтвердить выход алгоритма круиз-контроля с помощью Vehicle Network Toolbox™ и MATLAB™ основанная на классах среда модульного тестирования.
Это использует класс модульного теста MATLAB tCruiseControlAlgorithmVerifier.m, чтобы обеспечить входные команды через Сеть области контроллера (CAN) к модели Simulink™ алгоритма круиз-контроля, чтобы инициировать функциональное поведение алгоритма, и затем получает обратную связь от модели до CAN и подтверждает ожидаемое поведение алгоритма. Это также генерирует отчет PDF результатов испытаний, которые могут использоваться в анализе. Для получения дополнительной информации о том, как записать тестовый класс, смотрите tCruiseControlAlgorithmVerifier.m файл. Диалоговое окно в том классе помогает вам изучить метод подготовки тестового класса и что делает каждая отдельная контрольная точка.
Этот пример использует Виртуальные каналы CAN MathWorks™, чтобы связаться с алгоритмом.
Алгоритм круиз-контроля имеет блок 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/BR2020ad_1309140_40591/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/BR2020ad_1309140_40591/mlx_to_docbook1/tp92f3febe/vnt-ex21299704/CruiseControlAlgorithmTestReport.pdf
result = 1x3 TestResult array with properties: Name Passed Failed Incomplete Duration Details Totals: 2 Passed, 1 Failed (rerun), 0 Incomplete. 145.3953 seconds testing time.
Откройте файл PDF, созданный с заданным именем. Настройка по умолчанию создает его в текущей рабочей директории. Существует две вещи наблюдать в отчете PDF:
Полный результат утверждает конечный результат на основе того, передали ли все тесты или нет. Круговая диаграмма показывает, сколько тесты передали и привели к сбою из общего количества заданных контрольных точек.
Сводные данные отказа показывают, какой тест провалил и по какой причине.
Нажатие на вкладку деталей на правой стороне имени отказа обеспечивает подробную причину отказа, наряду с диагностическим сообщением, которое вы сконфигурировали в контрольной точке.