开发区域

使用MATLAB先进的软件开发

只需点击它......给它一个小点PY点击点按TAP-AROO

最后一篇文章我们探索了将MATLAB连接到Jenkins,运行测试,并确保在任何测试失败时都会失败。我们利用了从测试运行返回的TestResult数组,以便在需要时与非零退出状态代码退出MATLAB,以便在需要时与Jenkins进行通信。

这将工作,但有一个更好的方法,如果你有R2014a或更高版本。为了真正与Jenkins集成,MATLAB和Jenkins需要更加充分地相互沟通。一个很好的方法就是利用标准的语言独立性测试任何协议(点击)。使用Jenkins的TAP插件TAPPlugin对于MATLAB TestRunner, MATLAB可以给Jenkins提供更详细的信息。该信息包括运行了哪些测试、哪些测试失败了,以及哪些测试被过滤了。此外,还启用了Jenkins的其他特性,比如历史跟踪。

够了够了!这是如何做到的?

在Jenkins中设置TAP插件

首先,Jenkins需要TAP插件来解释TAP流。这是通过Jenkins插件管理器完成的,可以通过搜索“TAP”轻松找到:

一旦安装了新的“发布点击结果”选项可作为构建后的操作使用。

将Jenkins指向将生成Tap Stream的位置后,我们可以进一步配置Plugin行为,因为我们认为适合。例如,如果运行任何测试,或者如果测试数量与点击计划不同,则我们可以失败构建。重要的是,如果有任何测试失败,我们需要检查失败的选项。在这里,我们正在拾取具有“.tap”扩展的任何文件,如果有任何测试失败,我们将失败,如果没有运行测试,或者如果不完整。

在MATLAB中建立TAPPlugin

在上一篇文章中,我们已经连接并运行了测试,现在我们只需要这个特定的测试运行来输出一个TAP流,Jenkins将提取并分析这个TAP流。为此,我们可以创建自己的TestRunner并将TAP插件添加到其中。然而,一个需要考虑的问题是,我们不希望在MATLAB中生成的测试输出妨碍TAP流并使其无效,所以我们需要确保TAP流被定向到命令窗口之外的其他地方。我们还需要将TAP流输出到Jenkins插件可以找到用于分析的文件中。这两个问题都可以通过将TAPPlugin输出发送到去整理溪流。测试运行脚本成为:

进口matlab.unittest.testsuite.;进口matlab.unittest.TestRunner;进口matlab.unittest.plugins.tapplugin.;进口matlab.unittest.plugins.ToFile;试一试套房= testsuite.frompachage(“测试”'inclodingsubpackages',真的);创建一个带有文本输出的典型运行器runner = testrunner.withtextoutput();%添加TAP插件并直接将其输出到一个文件中tapfile = fullfile(getEnv(“工作区”),'testresults.tap');runner.addPlugin (TAPPlugin.producingOriginalFormat(去整理(tapFile)));%运行测试结果= runner.run(套件);显示(结果);抓住e disp (getReport (e,“扩展”));退出(1);结尾出口;

运行Jenkins Build现在在存在这些测试失败时失败了:

享受劳动的果实

Jenkins现在也将为您提供深入的洞察力,测试传递,失败或被过滤给您,可以快速导航到失败综合征并开始调查。

此外,许多Jenkins / Tap-Plugin功能随着时间的推移,增加了对软件的健康状况的改进的可视性,例如通过项目页面上列出的传递测试,失败测试和过滤测试的历史记录:

在这里,您可以看到与失败和过滤测试内容相关的测试套件增长和运行状况的历史。例如,如果我们修复这个测试套件中的失败并运行一个新作业,我们会看到红色消失。

同样,如果我们这样做需要的工作到不跑的测试内容尚未运行......¡Hasta La Vista Al Amarillo!

请注意,设置CI系统有许多不同的方法,这只是一个简单的示例。说,如果你用这种方法你也会想要确保你清理你的工作区之间构建移除这些利用文件结果,这样每个构建始于新鲜,否则点击文件从之前的工作将肆虐与当前的工作。

你怎么认为?您是否以前使用了用于测试结果的语言独立点击格式?您如何使用其余生态系统进行Matlab测试?让我们在评论中知道!




发布了MATLAB®R2014B

|
  • 打印
  • 发电子邮件

评论

要发表评论,请点击在这里要登录您的MathWorks帐户或创建新的。