Можно создать тесты модели, которые совместимы с системами непрерывного интегрирования (CI), такими как Jenkins™. Чтобы создать совместимые с CI результаты, запустите свой Simulink® Файлы Test™ с помощью MATLAB® Модульный тест.
Чтобы запустить совместимые с CI тесты, выполните эту общую процедуру:
Создайте тестовый набор из тестового файла MLDATX.
Создайте исполнителя тестов.
Создайте плагины для теста выход или результаты покрытия.
Для теста выходные параметры используйте TAPPlugin или XMLPlugin.
Для покрытия модели используйте ModelCoveragePlugin и CoberturaFormat. При сборе покрытия модели в формате Cobertura:
Только покрытие топ-модели отражается в Cobertura XML.
Только Decision Coverage модели отражается, и он сопоставлен с элементами Условия в Cobertura XML.
Создайте плагины для совместимого с CI выхода.
Добавьте плагины в тест выход или результаты покрытия.
Добавьте тест выходные плагины или плагины результата покрытия к исполнителю тестов.
Запустите тест.
В этом примере показано, как протестировать модель, опубликуйте менеджера по Тесту результаты и выведите результаты в формате TAP с одним выполнением.
Вы используете MATLAB® Unit Test, чтобы создать тестовый набор и исполнителя тестов, и настроить бегуна с этими плагинами:
matlab.unittest.plugins.TestReportPlugin производит Протокол испытаний MATLAB.
sltest.plugins.TestManagerResultsPlugin добавляет менеджер по Тесту результаты в Протокол испытаний MATLAB.
matlab.unittest.plugins.TAPPlugin выходные параметры заканчиваются к файлу TAP.
Тест создает вход прямоугольной волны к подсистеме контроллера и развертывает через 25 итераций параметров a и b. Тест сравнивает alpha выведите к базовой линии с допуском 0.0046. Тест перестал работать на тех итерациях, в которых выход превышает этот допуск.
Прежде, чем запустить этот пример, гарантируйте, что рабочая папка перезаписываема.
1. Откройте тестовый файл Simulink® Test™.
testfile = fullfile('f14ParameterSweepTest.mldatx');
sltest.testmanager.view;
sltest.testmanager.load(testfile);2. В менеджере по Тесту сконфигурируйте тестовый файл для создания отчетов.
В соответствии с Опциями Тестового файла, выберите отчет Generate после выполнения. Раздел расширяется, отображая несколько опций отчета. Для получения дополнительной информации смотрите, Сохраняют Опции Создания отчетов с Тестовым файлом.
3. Создайте тестовый набор из тестового файла Simulink® Test™.
import matlab.unittest.TestSuite suite = testsuite('f14ParameterSweepTest.mldatx');
4. Создайте исполнителя тестов.
import matlab.unittest.TestRunner
f14runner = TestRunner.withNoPlugins;5. Добавьте TestReportPlugin к исполнителю тестов.
Плагин производит Протокол испытаний MATLAB F14Report.pdf.
import matlab.unittest.plugins.TestReportPlugin pdfFile = 'F14Report.pdf'; trp = TestReportPlugin.producingPDF(pdfFile); addPlugin(f14runner,trp)
6. Добавьте TestManagerResultsPlugin к исполнителю тестов.
Плагин добавляет менеджера по Тесту результаты в Протокол испытаний MATLAB.
import sltest.plugins.TestManagerResultsPlugin
tmr = TestManagerResultsPlugin;
addPlugin(f14runner,tmr)7. Добавьте TAPPlugin к исполнителю тестов.
Сменные выходные параметры к F14Output.tap файл.
import matlab.unittest.plugins.TAPPlugin import matlab.unittest.plugins.ToFile tapFile = 'F14Output.tap'; tap = TAPPlugin.producingVersion13(ToFile(tapFile)); addPlugin(f14runner,tap)
8. Запустите тест.
Несколько сбоев итераций, в которых различие сигнала базовое превышает критерии допуска.
result = run(f14runner,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:
C:\Users\nali\OneDrive - MathWorks\Documents\MATLAB\ExampleManager\nali.Bdoc21b.j1587977.qual3\simulinktest-ex40056435\F14Report.pdf
Одно выполнение исполнителя тестов представляет два отчета:
Протокол испытаний MATLAB, который содержит менеджера по Тесту результаты.
Файл формата TAP, который можно использовать с системами CI.
sltest.testmanager.clearResults sltest.testmanager.clear sltest.testmanager.close
В этом примере показано, как сгенерировать результаты покрытия модели для использования с непрерывным интегрированием. О покрытии сообщают в формате Cobertura. Вы запускаете тестовый файл Simulink® Test™ с помощью MATLAB® Unit Test.
1. Импортируйте классы и создайте тестовый набор из тестового файла AutopilotTestFile.mldatx.
import matlab.unittest.TestRunner aptest = sltest.testmanager.TestFile('AutopilotTestFile.mldatx'); apsuite = testsuite(aptest.FilePath);
2. Создайте исполнителя тестов.
trun = TestRunner.withNoPlugins;
3. Установите метрики покрытия собираться. Этот пример использует Decision Coverage. В Cobertura выход Decision Coverage перечислен как элементы условия.
import sltest.plugins.coverage.CoverageMetrics cmet = CoverageMetrics('Decision',true);
4. Установите свойства отчета покрытия. Этот пример производит файл R13Coverage.xml в текущей рабочей папке. Гарантируйте, что ваша рабочая папка имеет полномочия записи.
import sltest.plugins.coverage.ModelCoverageReport import matlab.unittest.plugins.codecoverage.CoberturaFormat rptfile = 'R13Coverage.xml'; rpt = CoberturaFormat(rptfile)
rpt = CoberturaFormat with no properties.
5. Создайте плагин покрытия модели. Плагин собирает метрики покрытия и представляет отчет формата Cobertura.
import sltest.plugins.ModelCoveragePlugin mcp = ModelCoveragePlugin('Collecting',cmet,'Producing',rpt)
mcp =
ModelCoveragePlugin with properties:
RecordModelReferenceCoverage: '<default>'
MetricsSettings: [1x1 sltest.plugins.coverage.CoverageMetrics]
6. Добавьте плагин покрытия в исполнителя тестов.
addPlugin(trun,mcp) % Turn off command line warnings: warning off Stateflow:cdr:VerifyDangerousComparison warning off Stateflow:Runtime:TestVerificationFailed
7. Запустите тест.
APResult = run(trun,apsuite)
APResult =
TestResult with properties:
Name: 'AutopilotTestFile > Basic Design Test Cases/Requirement 1.3 Test'
Passed: 0
Failed: 1
Incomplete: 0
Duration: 3.6613
Details: [1x1 struct]
Totals:
0 Passed, 1 Failed, 0 Incomplete.
3.6613 seconds testing time.
8. Повторно включите предупреждения.
warning on Stateflow:cdr:VerifyDangerousComparison warning on Stateflow:Runtime:TestVerificationFailed
TestRunner | TestSuite | sltest.plugins.ModelCoveragePlugin | sltest.plugins.TestManagerResultsPlugin | matlab.unittest.plugins.TestReportPlugin | matlab.unittest.plugins.TAPPlugin