持续集成系统的输出结果

您可以创建与持续集成(CI)系统(如Jenkins™)兼容的模型测试。要创建与ci兼容的结果,请运行万博1manbetx®测试™使用MATLAB文件®单元测试。

要运行ci兼容测试,请遵循以下常规步骤:

  1. 从MLDATX测试文件创建一个测试套件。

  2. 创建一个测试运行器。

  3. 为测试输出或覆盖结果创建插件。

    • 对于测试输出,使用TAPPluginXMLPlugin

    • 对于模型覆盖,使用ModelCoveragePluginCoberturaFormat.当以Cobertura格式收集模型覆盖率时:

      • 在Cobertura XML中只反映了顶级模型的覆盖范围。

      • 只反映了模型Decision覆盖率,并将其映射到Cobertura XML中的Condition元素。

  4. 为ci兼容的输出创建插件。

  5. 将插件添加到测试输出或覆盖结果中。

  6. 将测试输出插件或覆盖结果插件添加到测试运行器中。

  7. 运行测试。

测试持续集成系统的模型

这个例子展示了如何测试一个模型,发布test Manager结果,以及通过一次执行以TAP格式输出结果。

您可以使用MATLAB®Unit Test创建一个测试套件和一个测试运行器,并使用以下插件自定义运行器:

测试用例创建一个控制器子系统的方波输入,并扫描25次参数迭代一个b.该测试比较了α输出到一个公差为的基线0.0046.在输出超过此公差的迭代中,测试失败。

在运行此示例之前,请确保工作文件夹是可写的。

1.打开Simulin万博1manbetxk®Test™测试文件。

测试文件= fullfile (“f14ParameterSweepTest.mldatx”);sltest.testmanager.view;sltest.testmanager.load(测试文件);

2.在Test Manager中,为报告配置测试文件。

测试文件选项中,选择执行后生成报告.该部分展开,显示几个报表选项。有关更多信息,请参见用测试文件保存报告选项

3.从Simulink®test™测试文件创建一个测试套件。万博1manbetx

进口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给测试运行器。

该插件将Test Manager结果添加到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/Bdoc20a_1326390_220260/tpe118b471/simulinktest-ex4005643万博1manbetx5/F14Report.pdf

一次测试运行器的执行会产生两个报告:

  • 包含测试管理器结果的MATLAB测试报告。

  • 您可以在CI系统中使用的TAP格式文件。

sltest.testmanager.clearResults sltest.testmanager.clear sltest.testmanager.close

持续集成的模型覆盖率结果

这个示例展示了如何生成用于持续集成的模型覆盖结果。覆盖率报告采用Cobertura格式。使用MATLAB单元万博1manbetx测试运行Simulink®Test™测试文件。

1.导入类并从测试文件创建测试套件AutopilotTestFile.mldatx

进口matlab.unittest.TestRunner伶俐= sltest.testmanager.TestFile (fullfile (matlabroot“工具箱”“万博1manbetxsimulinktest”...“万博1manbetxsimulinktestdemos”“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 with properties: RecordModelReferenceCoverage: '' MetricsSettings: [1x1 sltest.plugins.coverage.CoverageMetrics]

6.将覆盖率插件添加到测试运行程序中。

mcp addPlugin(紫)%关闭命令行警告:警告Stateflow: cdr: VerifyDangerousComparison警告Stateflow:运行时:TestVerificationFailed

7.运行测试。

apsuite APResult =运行(紫)
APResult = TestResult with properties: Name: 'AutopilotTestFile > Basic Design Test Cases/Requirement 1.3 Test' Passed: 0 Failed: 1 Incomplete: 1 Duration: 0.0492 Details: [1x1 struct]总计:0 Passed, 1 Failed (rerun), 1 Incomplete. 0.049224秒测试时间。

8.使再能警告。

警告Stateflow: cdr: VerifyDangerousComparison警告Stateflow:运行时:TestVerificationFailed

另请参阅

|||||

相关的话题