开发区域

MATLAB高级软件开发

兄弟姐妹竞争模式

天啊,时间过得真快!我们已经有一段时间没有更新博客了,虽然我真的想让我们在这里进行的对话继续下去,这是我想让你想象我最近在做什么:

这是正确的…就把我当作你的代码猴子,不知疲倦地推动面向开发人员的基础设施(和博客主题)。我们确实在MATLAB中做了很多令人兴奋的事情,到时候我们一定会在这里讨论。我都等不及了。

然而,已经有很多讨论有待探讨。今天我想强调的是R2015b已经发布的另一个持续集成工作流改进。

细节才是美

如果你还记得, MATLAB可以连接到CI系统,如Jenkins™,它可以被配置为定期和/或在源代码控制系统中修改文件时运行您的测试。这是使用TAPPlugin用于MATLAB的TestRunner。该插件在R2015b中得到了增强,可以在TAP流中显示诊断信息,以改进CI报告中的显示。例如,在前一篇文章中讨论的脚本完全没有变化的情况下,Jenkins输出现在包含了诊断(我们听到了您的声音)Aditya!)因此,对于下面的失败测试:

classdefNumericsTest < matlab.unittest.TestCase版权所有The MathWorks, Inc.方法(测试)函数shouldReallyBePi(testCase) wannabePi = 22/7;testCase。verifyEqual (wannabePiπ,“RelTol”1 e-8...“我不会让7 / 22代替圆周率!”);结束结束结束

我们现在在詹金斯报告中看到了有用的诊断方法。

当然,这可能取决于您的特定CI系统如何呈现TAP输出,但MATLAB无疑从一开始就提供了更丰富的TAP流。

一匹不同形式的马

说到不同的CI系统,虽然Jenkins非常值得强调,因为它很容易在一篇简短的博客文章中展示,而且很受欢迎,但当然还有许多其他的CI系统。我支持TAP格式的原因之一是它的目标是独立于语言。金宝app然而,不幸的是,有一些CI系统根本不具备处理TAP流的能力。事实上的JUnit XML格式(实际上是Apache Ant JUnit任务生成的XML输出)非常普遍,并且得到一些不支持TAP协议的CI系统的支持。金宝appR2015b再次发挥了作用,因为现在可以使用新的JUnit格式将测试结果导出为JUnit格式XMLPlugin.这有几个好处:

  • 它可用于与不支持TAP协议的CI系统集成。金宝app
  • 作为XML,可以在文件上应用XSLT转换,将结果转换为另一种格式(如果您喜欢这种格式的话)。
  • 您还可以从使用这种流行格式的其他无形收益中受益,我计划在以后的文章中演示这种格式。

在此之前,如果能拥有与新版本TAPPlugin相同的详细诊断就太好了,它确实做到了!要看到这一点,你只需将MATLAB XMLPlugin安装到TestRunner上,如下所示:

进口matlab.unittest.TestSuite;进口matlab.unittest.TestRunner;进口matlab.unittest.plugins.TAPPlugin;进口matlab.unittest.plugins.ToFile;进口matlab.unittest.plugins.XMLPlugin试一试TestSuite.fromPackage(“测试”“IncludingSubpackages”,真正的);runner = testrrunner . withtextoutput ();添加JUnit XML插件xmlFile = fullfile(getenv(“工作区”),“testResults.xml”);runner.addPlugin (XMLPlugin.producingJUnitFormat (xmlFile));也添加TAP插件,因为为什么不呢?tapFile = fullfile(getenv(“工作区”),“testResults.tap”);runner.addPlugin (TAPPlugin.producingOriginalFormat(去整理(tapFile)));结果= run .run(suite);显示(结果);e disp (getReport (e,“扩展”));退出(1);结束退出;

然后在Jenkins中配置一个post-build步骤来发布“JUnit”结果:

...和viola,我们也可以看到JUnit发布步骤的诊断:

那么哪个输出格式是最喜欢的子格式呢?你告诉我!你注意到TAPPlugin的改进诊断了吗?您能从junit风格的XML格式中获益吗?如果是这样的话,我很乐意听到一些细节!




发布与MATLAB®R2015b

|
  • 打印
  • 发送电子邮件

评论

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