您可以创建与连续集成(CI)系统兼容的模型测试,例如Jenkins™。要创建CI兼容的结果,请运行您的金宝app®TEST™使用matlab的文件®单元测试。
要运行CI兼容的测试,请按照此一般程序进行操作:
从MLDATX测试文件创建测试套件。
创建一个测试赛道。
为测试输出或覆盖结果创建插件。
对于测试输出,使用Tapplugin.
或者XMLPlugin.
。
对于模型覆盖范围,使用modelcoverageplugin.
和coberturaformat
。在Cobertura格式收集模型覆盖时:
只有顶级模型覆盖率被反映在Cobertura XML中。
仅反映模型决策覆盖范围,它映射到Cobertura XML中的条件元素。
为CI兼容输出创建插件。
将插件添加到测试输出或覆盖结果。
将测试输出插件或覆盖结果插件添加到Test Runner。
运行测试。
此示例显示如何测试模型,发布测试管理器结果和输出结果,以单一执行点按格式。
您使用MATLAB®单元测试创建测试套件和测试赛道,并使用这些插件自定义RINNER:
matlab.unittest.plugins.testreportplugin.
生成MATLAB测试报告。
sltest.plugins.testmanagerresultsplugin.
将测试管理器添加到Matlab测试报告。
matlab.unittest.plugins.tapplugin.
将结果输出到点按文件。
测试用例为控制器子系统创建一个方波输入,并扫过25个参数迭代一种
和B.
。测试比较了α
输出到具有容差的基线0.0046
。测试失败,输出超过这种公差的迭代。
在运行此示例之前,请确保工作文件夹可写。
1.打开Simulink金宝app®Tear™测试文件。
testfile = fullfile('f14parametersweeptest.mldatx');sltest.testmanager.view;sltest.testmanager.load(testfile);
2.在“测试管理器”中,配置用于报告的测试文件。
在下面测试文件选项, 选择执行后生成报告。该部分展开,显示多个报告选项。有关更多信息,请参阅使用测试文件保存报告选项。
3.从Simulink®Tear™测试文件创建测试套件。金宝app
进口matlab.unittest.testsuite.套房= testsuite('f14parametersweeptest.mldatx');
4.创建一个测试赛道。
进口matlab.unittest.testrunner.f14runner = testrunner.withnoplugins;
5.添加testreportplugin.
到测试赛道。
该插件产生了MATLAB测试报告f14report.pdf.
。
进口matlab.unittest.plugins.testreportplugin.pdffile ='f14report.pdf';TRP = TESTREPORTPLUGIN.PRODONTEPDF(PDFFILE);AddPlugin(F14Runner,TRP)
6.添加testmanagerresultsplugin.
到测试赛道。
插件将测试管理器添加到Matlab测试报告。
进口sltest.plugins.testmanagerresultsplugin.tmr = testmanagerresultsplugin;AddPlugin(F14Runner,TMR)
7.添加Tapplugin.
到测试赛道。
插件输出到f14output.tap.
文件。
进口matlab.unittest.plugins.tapplugin.进口matlab.unittest.plugins.tofile.tapfile ='f14output.tap';点击= tapplugin.produtingversion13(Tofile(Tapfile));AddPlugin(F14Runner,Tap)
8.运行测试。
几个迭代失败,其中信号基线差超过公差标准。
结果= run(f14runner,套房);
生成测试报告。请稍等。为测试报告准备内容。
将内容添加到测试报告。将测试报告写入文件。测试报告已保存到:/tmp/bdoc21a_1622859_255720/tpdb9024e8/simulinktest-ex4005643金宝app5/f14report.pdf
测试赛道的单个执行产生两个报告:
一个包含测试管理器结果的MATLAB测试报告。
可以使用CI Systems的点按格式文件。
sltest.testManager.ClearResults SLTEST.TestManager.clear sltest.testManager.Close.
此示例显示如何为连续集成生成模型覆盖结果。Cobertura格式报告了覆盖范围。您使用Matlab®金宝app单元测试运行Simulink®IST™测试文件。
1.导入类并从测试文件创建测试套件autopilottestfile.mldatx.
。
进口matlab.unittest.testrunner.aptest = sltest.testManager.Testfile('autopilottestfile.mldatx');apsuite = testsuite(aptest.filepath);
2.创建测试赛道。
trun = testrunner.withnoplugins;
3.将覆盖度量设置为收集。此示例使用决策覆盖范围。在Cobertura产出中,决策覆盖范围列为条件元素。
进口sltest.plugins.coverage.CoverageMetrics.cmet =覆盖术('决定',真的);
4.设置覆盖报告属性。此示例生成文件r13coverage.xml.xml.
在当前的工作文件夹中。确保您的工作文件夹具有写入权限。
进口sltest.plugins.coverage.modelcoveragreeport.进口matlab.unittest.plugins.codecoverage.coberturaformatrptfile ='r13coverage.xml';RPT = COBERTURAFORMAT(RPTFILE)
RPT = CoberturaFormat没有属性。
5.创建模型覆盖插件。该插件收集覆盖度量标准并生成Cobertura格式报告。
进口sltest.plugins.modelcoveragepluginmcp = modelcoverageplugin('收集',cmet,'制作',RPT)
MCP = ModelCoveragePlugin具有属性:RecordModelReferenceCoverage:''metricsettings:[1x1 sltest.plugins.coverage.CoverageMetrics]
6.将Coverage插件添加到Test Runner中。
AddPlugin(Trun,MCP)%关闭命令行警告:警告离开StateFlow:CDR:验证DangoreComparison警告离开StateFlow:运行时:测试验证措施
7.运行测试。
Apresult = run(trun,apsuite)
Apresult = testResult属性:名称:'AutopiLottestfile>基本设计测试用例/要求1.3测试'传递:0失败:1不完整:0持续时间:4.5704详细信息:[1x1 struct]总计:0传递,1失败,0不完整,0。4.5704秒测试时间。
8.可重新启动。
警告上StateFlow:CDR:验证DangoreComparison警告上StateFlow:运行时:测试验证措施
matlab.unittest.plugins.tapplugin.
|matlab.unittest.plugins.testreportplugin.
|sltest.plugins.modelcoverageplugin
|sltest.plugins.testmanagerresultsplugin.
|TestRunner.
|testsuite.