连续集成系统的输出结果
您可以创建与Jenkins等持续集成(CI)系统兼容的模型测试®.要创建ci兼容的结果,请运行您的动态仿真模块®测试™使用MATLAB文件®单元测试。
要运行与ci兼容的测试,请遵循以下通用过程:
从MLDATX测试文件创建一个测试套件。
创建一个测试运行器。
为测试输出或覆盖结果创建插件。
对于模型覆盖率,请使用
ModelCoveragePlugin
而且CoberturaFormat
.当以Cobertura格式收集模型覆盖率时:Cobertura XML中只反映了顶级模型的覆盖率。
只反映模型Decision覆盖率,并将其映射到Cobertura XML中的条件元素。
为ci兼容的输出创建插件。
将插件添加到测试输出或覆盖结果中。
向测试运行器中添加测试输出插件或覆盖结果插件。
运行测试。
测试连续集成系统的一个模型
这个例子展示了如何测试一个模型,发布test Manager结果,以及在一次执行中以TAP格式输出结果。
您可以使用MATLAB®单元测试创建一个测试套件和一个测试运行器,并使用以下插件自定义运行器:
matlab.unittest.plugins.TestReportPlugin
生成MATLAB测试报告。sltest.plugins.TestManagerResultsPlugin
将测试管理器结果添加到MATLAB测试报告。matlab.unittest.plugins.TAPPlugin
将结果输出到TAP文件。
测试用例向控制器子系统创建方波输入,并遍历25次参数迭代一个
而且b
.该测试比较了α
输出到基线的公差为0.0046
.在那些输出超过此公差的迭代中,测试失败。
在运行此示例之前,请确保工作文件夹是可写的。
1.打开Simulink®Test™测试文件。
测试文件= fullfile (“f14ParameterSweepTest.mldatx”);sltest.testmanager.view;sltest.testmanager.load(测试文件);
2.在测试管理器中,配置用于报告的测试文件。
下测试文件选项中,选择执行后生成报告.该部分展开,显示几个报表选项。有关更多信息,请参见用测试文件保存报告选项.
3.从Simulink®test™测试文件创建一个测试套件。
进口matlab.unittest.TestSuite套件= testsuite (“f14ParameterSweepTest.mldatx”);
4.创建一个测试运行器。
进口matlab.unittest.TestRunnerf14runner = TestRunner.withNoPlugins;
5.添加TestReportPlugin
给测试运行人员。
该插件生成一个MATLAB测试报告F14Report.pdf
.
进口matlab.unittest.plugins.TestReportPluginpdfFile =“F14Report.pdf”;trp = TestReportPlugin.producingPDF (pdfFile);addPlugin (f14runner trp)
6.添加TestManagerResultsPlugin
给测试运行人员。
该插件将测试管理器结果添加到MATLAB测试报告中。
进口sltest.plugins.TestManagerResultsPlugin咯= TestManagerResultsPlugin;addPlugin (f14runner咯)
7.添加TAPPlugin
给测试运行人员。
插件输出到F14Output.tap
文件。
进口matlab.unittest.plugins.TAPPlugin进口matlab.unittest.plugins.ToFiletapFile =“F14Output.tap”;利用= TAPPlugin.producingVersion13(去整理(tapFile));addPlugin (f14runner,挖掘)
8.运行测试。
多次迭代失败,其中信号基线差异超过了容忍标准。
结果=运行(f14runner套件);
生成测试报告。请稍等。准备测试报告的内容。
向测试报告中添加内容。编写测试报告存档。测试报告已保存到:/tmp/Bdoc22b_2054784_2968323/tp420af76b/simulinktest-ex40056435/F14Report.pdf
测试运行器的一次执行会产生两个报告:
包含测试管理器结果的MATLAB测试报告。
可以与CI系统一起使用的TAP格式文件。
sltest.testmanager.clearResults sltest.testmanager.clear sltest.testmanager.close
持续集成的模型覆盖结果
这个例子展示了如何生成用于持续集成的模型覆盖结果。覆盖率以Cobertura格式报告。使用MATLAB®单元测试运行Simulink®Test™测试文件。
1.导入类并从测试文件创建测试套件AutopilotTestFile.mldatx
.
进口matlab.unittest.TestRunner伶俐的= sltest.testmanager.TestFile (“AutopilotTestFile.mldatx”);apsuite = testsuite (aptest.FilePath);
2.创建一个测试运行器。
紫= TestRunner.withNoPlugins;
3.设置要收集的覆盖率指标。本例使用决策覆盖。在Cobertura输出中,决策覆盖率被列为条件元素。
进口sltest.plugins.coverage.CoverageMetrics之外= CoverageMetrics (“决定”,真正的);
4.设置覆盖率报告属性。这个示例生成一个文件R13Coverage.xml
在当前工作文件夹中。确保您的工作文件夹具有写权限。
进口sltest.plugins.coverage.ModelCoverageReport进口matlab.unittest.plugins.codecoverage.CoberturaFormatrptfile =“R13Coverage.xml”;rpt = CoberturaFormat (rptfile)
rpt =无属性的CoberturaFormat。
5.创建一个模型覆盖插件。该插件收集覆盖率指标并生成Cobertura格式的报告。
进口sltest.plugins.ModelCoveragePluginmcp = ModelCoveragePlugin (“收集”之外,“生产”rpt)
mcp = ModelCoveragePlugin,带有属性:RecordModelReferenceCoverage: '' MetricsSettings: [1x1 sltest.plugins.coverage.CoverageMetrics]
6.将覆盖插件添加到测试运行器中。
mcp addPlugin(紫)%关闭命令行警告:警告从Stateflow: cdr: VerifyDangerousComparison警告从Stateflow:运行时:TestVerificationFailed
7.运行测试。
apsuite APResult =运行(紫)
APResult = TestResult属性:名称:'AutopilotTestFile >基本设计测试用例/需求1.3测试'通过:0失败:1不完整:0持续时间:0.4848详细信息:[1x1 struct]总数:0通过,1失败,0不完整。0.48481秒测试时间。
8.使再能警告。
警告在Stateflow: cdr: VerifyDangerousComparison警告在Stateflow:运行时:TestVerificationFailed
另请参阅
TestRunner
|TestSuite
|sltest.plugins.ModelCoveragePlugin
|sltest.plugins.TestManagerResultsPlugin
|matlab.unittest.plugins.TestReportPlugin
|matlab.unittest.plugins.TAPPlugin