开发人员区

高级软件开发与MATLAB

报到

你好!前几天我读了盖伊的博客,想起了他那篇很棒的文章金宝app使用Jenkins和GitLab的Simulink测试工作流.在他的思考中,我认为很酷的一件事是他如何设置它来存储结果,这样你就不需要重新运行测试来开始调查。

好吧,我很乐意报告,因为自CI工作流程以来的R2018B可能更轻松TestReportPlugin现在在报告中包含所有Simulink Te金宝appst特定的信息。这意味着您甚至可以通过查看CI仪表板,直接在浏览器中调试问题或了解测试失败的原因。这样您就可以确定正确的人,以便更有效地进一步调试和修复问题。只是做我们的一部分,以保持您的工作流程良好!

这很容易做到。让我们来看看其中一个Simulink测试示例,f14ParameterSweepTest。金宝app这个测试有一些失败的地方,我们有希望收集一些快速的洞察力。要将此作为CI构建的一部分运行,需要进行一些快速连接。首先,例如,您需要确保您的Simulink Test文件被配置为生成一个报告。金宝app实际上,你需要做的就是在Test Manager中打开文件,然后点击选项生成报告:

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

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

好了,接下来你需要用正确的插件创建你的跑步者。这就是你想要从Jenkins构建中运行的东西。让我们首先设置基本的CI脚本。要在报告中包含此信息,您需要在TestRunner上使用两个插件。首先,如果您想要一个测试报告,您将需要TestReportPlugin(我希望这很有意义)。让我们创建一个HTML报告,并把它放到Jenkins工作区的reports子文件夹中:

进口matlab.unittest。*;进口matlab.unittest.plugins。*;采用reportLocation = fullfile“工作区”),'报告');如果~ isfolder (reportLocation) mkdir (reportLocation);结束跑步者= TestRunner.withTextOutput;runner.addPlugin (TestReportPlugin.producingHTML (reportLocation));

接下来,为了在报告中获得所有Simulink Test特定的细节,金宝app请添加TestManagerResultsPlugin也注意,这个插件在使用runtests时默认包含,但它需要在这里显式添加,因为我们正在配置自己的运行器:

进口sltest.plugins。*;runner.addPlugin (TestManagerResultsPlugin);runner.run (testsuite(测试文件);
运行F14ParametersWeeptest>新测试套件1 .......... ........ ================================================================================验证F14ParametersWeeptest>新测试套件1 /迭代参数扫描(ScriptedIteration = Scripted_Interation19)中失败。---------------------框架诊断:--------------------失败的标准:基线 -- >日志:输入可能不兼容模拟。测试结果可能不准确。单击此处获取有关外部输入映射的更多信息。- > 金宝appSimulink测试管理器结果:结果:2018-11-13 13:07:03 / F14ParametersWeeptest / New Test Suite 1 /迭代参数扫描/ Scripted_Iritation19 ================================================================================。....================================================================================ Verification failed in f14ParameterSweepTest > New Test Suite 1/Iterations Parameter Sweep(ScriptedIteration=Scripted_Iteration24). --------------------- 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_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

现在,当运行此测试时,您将看到生成的报告,以及基于可视化的所有模拟数据检查器,以及其他特定于Simulink测试的元数据。金宝app这是其中一个失败:

...放大你可以看到在模拟中20秒左右的实际信号和预期信号之间的误差是如何大于公差的:

现在,您可能希望在Jenkins构建中保存生成的HTML。您可以,但您需要托管自己的Web服务器以满足生成的HTML,或配置Jenkins环境并利用HTML出版商插件詹金斯。唯一的问题是,您可能需要对Jenkins服务器的内容安全策略进行一些更改,以便正确显示这些html报告。只有在很好地理解了Jenkins服务器的配置方式并理解其安全性影响的情况下,您才会希望这样做。下面列出了一个很好的概述这里.但是,由于使用了JavaScript和CSS,默认Jenkins策略不能正确地呈现html测试报告。

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

那不是可爱吗?现在你有一个头部开始诊断问题并将调查进入右手,所以你可以专注于你所做的惊人的事情!




发布与MATLAB®R2018B

|
  • 打印
  • 发送电子邮件

评论

请点击留下评论这里登录到你的MathWorks帐户或创建一个新的。