开发区域

用MATLAB开发高级软件

报告的责任

大家好!前几天我在盖伊的博客上读到了他的文章,还记得他写的一篇很棒的文章万博1manbetx与Jenkins和GitLab的Simulink测试工作流.在他的思考中,我觉得很酷的一件事是,他如何设置存储结果,这样你就不需要重新运行测试来开始调查。

我很高兴的报告,在R2018b在您的CI工作流程中可能更容易TestReportPlugin现在在报告中包含所有特定于Simulink万博1manbetx Test的信息。这意味着您甚至可以开始调试问题,或者通过查看CI仪表板直接在浏览器中了解测试失败的原因。这样您就可以确定合适的人来进一步调试和更有效地修复问题。尽我们的一份力量让你的工作流程运转良好!

这很容易做到。为了看到它的实际作用,让我们看看Simulink测试的一个例子,f14ParameterSweepT万博1manbetxest。这个测试有一些失败的地方,我们希望能够快速了解到。要将此作为CI构建的一部分运行,需要进行一些快速连接。例如,首先,您需要确保将您的Simulink Test文件配置为生成一个报告。万博1manbetx实际上你需要做的就是在Test Manager中打开这个文件,然后点击这个选项来生成报告:

测试文件='f14ParameterSweepTest.mldatx'; sltest.testmanager.view;sltest.testmanager.load(testFile);

选中此选项后,您将看到更多选项。您应该只能够使用默认选择来查看这里的值,但是如果您愿意,您可以调整报告中包含的内容。

好的,接下来您需要使用正确的插件创建您的runner。这就是您希望从Jenkins构建运行的内容。让我们首先设置基本的CI脚本。要在报告中包含此信息,TestRunner上需要两个插件。首先,如果您想要一个测试报告,那么您将需要TestReportPlugin(我希望这是有意义的)。让我们将其设置为创建HTML报告,并将其放入Jenkins工作区的“报告”子文件夹中:

进口matlab.unittest*; 进口matlab.unittest.plugins*; reportLocation=fullfile(getenv(“工作区”),“报告”);如果~isfolder(reportLocation)mkdir(reportLocation);终止runner=TestRunner.withTextOutput;runner.addPlugin(TestReportPlugin.producingHTML(reportLocation));

接下来,为了在报告中获得所有Simulink Test特定的细节,万博1manbetx添加TestManagerResultsPlugin同样。请注意,在使用runtests时默认包含此插件,但需要在此处显式添加,因为我们正在配置自己的runner:

进口sltest.plugins。*;runner.addPlugin(TestManagerResultsPlugin);runner.run(testsuite(testFile));
运行f14ParameterSweepTest > New Test Suite 1 .......... ........================================================================================ 验证失败f14ParameterSweepTest >新的测试套件1 /迭代参数(ScriptedIteration = Scripted_Iteration19)。--------------------- 框架的诊断 : --------------------- 失败条件:基线——>日志:输入为模拟可能不兼容。测试结果可能不准确。点击这里了解更多关于外部输入映射的信息。——>仿万博1manbetx真软件测试经理结果:结果:2018 - 11月- 13 13:07:03 / f14ParameterSweepTest /新的测试套件1 /扫描/ Scripted_Iteration19迭代参数  ================================================================================ .. ...================================================================================ 验证失败f14ParameterSweepTest >新的测试套件1 /迭代参数(ScriptedIteration = Scripted_Iteration24)。--------------------- 框架的诊断 : --------------------- 失败条件:基线——>日志:输入为模拟可能不兼容。测试结果可能不准确。点击这里了解更多关于外部输入映射的信息。 --> Simulink Test Manager Results: Results: 2018-Nov-13 13:07:03/f14ParameterSweepTest/New Test Suite 1/Iterations Parameter Sweep/Scripted_Iteration24 ================================================================================ . ================================================================================ Verification failed in f14ParameterSweepTest > New Test Suite 1/Iterations Parameter Sweep(ScriptedIteration=Scripted_Iteration25). --------------------- Framework Diagnostic: --------------------- Failed criteria: Baseline --> Logs: Inputs may not be compatible for simulation. Test results might not be accurate. Click here for more information on external input mapping. --> Simulink Test Manager Results: Results: 2018-Nov-13 13:07:03/f14ParameterSweepTest/New Test Suite 1/Iterations Parameter Sweep/Scripted_Iteration25 ================================================================================ . Done f14ParameterSweepTest > New Test Suite 1 __________ Failure Summary: Name Failed Incomplete Reason(s) ========================================================================================================================================================== f14ParameterSweepTest > New Test Suite 1/Iterations Parameter Sweep(ScriptedIteration=Scripted_Iteration19) X Failed by verification. ---------------------------------------------------------------------------------------------------------------------------------------------------------- f14ParameterSweepTest > New Test Suite 1/Iterations Parameter Sweep(ScriptedIteration=Scripted_Iteration24) X Failed by verification. ---------------------------------------------------------------------------------------------------------------------------------------------------------- f14ParameterSweepTest > New Test Suite 1/Iterations Parameter Sweep(ScriptedIteration=Scripted_Iteration25) X Failed by verification. Generating report. Please wait. Preparing content for the report. Adding content to the report. Writing report to file. Report has been saved to: /private/var/folders/bm/6qgg87js1bb7fpr2p475bcwh0002wp/T/reports/index.html

现在,当运行此测试时,您将看到生成的报告,其中包含所有基于simulation data inspector的可视化产品,以及Simulink测试特定的其他元数据。以下是失败之一:万博1manbetx

…放大后,您可以看到模拟开始20秒左右时实际信号和预期信号之间的误差如何大于公差:

现在,您可能想将生成的html保存到Jenkins构建中。你可以,但你要么需要托管你自己的web服务器来提供生成的html,要么配置你的Jenkins环境和利用HTML发布器插件唯一的问题是您可能需要对Jenkins服务器的内容安全策略进行一些更改,以便正确显示这些html报告。只有在您充分了解Jenkins服务器的配置方式并了解安全含义的情况下,您才会希望这样做列出的是在这里. 但是,由于使用JavaScript和CSS,html测试报告无法使用默认的Jenkins策略正确呈现。

但是,如果你能够安全地配置策略,你可以直接从Jenkins构建中看到报告:

这不是可爱的吗?现在,您已经开始诊断问题,并将调查交给正确的人,这样您就可以专注于您所做的令人惊异的事情!




发布与MATLAB®R2018b

|
  • 打印
  • 发送电子邮件

评论

如需留言,请点击在这里登录到您的MathWorks帐户或创建新帐户。