兄弟姐妹竞争模式
天啊,时间过得真快!我们已经有一段时间没有更新博客了,虽然我真的想让我们在这里进行的对话继续下去,这是我想让你想象我最近在做什么:
这是正确的…就把我当作你的代码猴子,不知疲倦地推动面向开发人员的基础设施(和博客主题)。我们确实在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格式中获益吗?如果是这样的话,我很乐意听到一些细节!
- 类别:
- 持续集成
评论
如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。