如何在 Hudson / Jenkins 中获取 CTest 结果
我正在使用 CTest(CMake 的一部分)进行自动化测试。
如何在 Jenkins 仪表板中获取 CTest 结果?或者,换句话来说,如何让 CTest 以类似 JUnit 的 XML 格式输出?
I'm using CTest (part of CMake) for my automated tests.
How do I get CTest results in the Jenkins dashboard ? Or, phrased differently, how do I get CTest to output in JUnit-like XML ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 Jenkins 中,在 CMake 部分(可能通过 CMake 插件制作)之后,添加以下批处理脚本,或适应 Linux 上的构建:
build_32
是 CMake 插件中的构建目录Tests< /code> 是我所有测试所在的子目录
-T Test
使 CTest 输出为 XML 格式(?!)verify >nul
将错误级别重置为 0,因为 CTest 返回>0 如果任何测试失败,Jenkins 将其解释为“整个构建失败”,这是我们不希望的python脚本看起来像这样(在10分钟内破解在一起,小心):
Testing/TAG
文件的第一行,因此附加的 fopenxsl 看起来像这样。它非常小,但完成了工作:[编辑]请参阅 MOnsDaR 的改进版本:http://pastebin.com/3mQ2ZQfa< /a>
最后,选中“发布 JUnit 测试结果”(或类似的,我的版本是法语)并将 xml 路径设置为
build_32/JUnitTestResults.xml
好吧,这很丑陋。但仍然希望这对某人有帮助。欢迎改进(也许从 python 运行 ctest ?使用 Python 插件的路径而不是 C:...?)
In Jenkins, after the CMake part (probably made through the CMake plugin), add the following batch script, or adapt for builds on Linux :
build_32
is the Build Directory in the CMake pluginTests
is the subdirectory where all my tests live-T Test
makes CTest output in XML (?!)verify >nul
resets errorlevel to 0, because CTest returns >0 if any test fails, which Jenkins interprets as "the whole build failed", which we don't wantThe python script looks like this (hacked together in 10 min, beware) :
Testing/TAG
file, hence the additional fopenThe xsl looks like this. It's pretty minimal but gets the job done : [EDIT] see MOnsDaR 's improved version : http://pastebin.com/3mQ2ZQfa
Finally, check "Publish JUnit tests results" (or similar, my version is in French) and set the xml path to
build_32/JUnitTestResults.xml
Well, that was ugly. But still, hope this helps someone. And improvements are welcome ( running ctest from python maybe ? Using the path of the Python plugin instead of C:... ? )
现在这似乎已集成在 jenkins-ci 中:
This seems to be integrated in jenkins-ci nowadays: