使用Jenkins和boost.test单元测试

时间:2013-05-14 08:00:12

标签: c++ jenkins boost-test

我在这个领域做了一些谷歌搜索,发现了很多关于让Jenkins了解boost.test的XML输出格式的讨论,但没有规范的参考。

有些人说我们只需要使用XLST转换XML格式,其他人则建议XML在此之前需要一些黑客攻击(Anyone have an XSL to convert Boost.Test XML logs to a presentable format?)。有人建议xUnit插件can原生了解boost.test XML格式,其他state it can't

因为我的搜索结果超过了5年,所以我意识到事情可能会发生变化。所以我正在寻找关于使用Jenkins运行和评估增强单元测试的最佳方法的最新答案。

3 个答案:

答案 0 :(得分:24)

xUnit解析适用于我使用Jenkins 1.498,xUnit 1.52,boost 1.42。我有一个使用boost 1.53的新项目,XML输出格式似乎与我的人性化错误倾向的眼睛相同,但由于我尚未在Jenkins中设置单元测试,我不是100确保输出兼容。

根据xUnit plugin comments的建议,我正在运行Boost测试程序:

run_test --log_format=XML --log_sink=results.xml --log_level=all --report_level=no

我将构建后的xUnit步骤配置为使用BoostTest-1.x格式解析results.xml

如果您仍然遇到问题,也许您可​​以使用有关您的版本以及如何生成测试输出的更多详细信息来更新您的问题。

答案 1 :(得分:2)

run_test --log_format=XML --log_sink=results.xml --log_level=all --report_level=no --result_code=no

我已经为Dave Bacher的答案添加了一个参数,因为Boost Test显然使用非零退出代码来表示测试失败,但Jenkins将此解释为更基本的失败,从而停止没有处理测试结果。

exit 201
Build step 'Execute Windows batch command' marked build as failure`

答案 2 :(得分:0)

好的,通常它可以使用这个选项。但是如果你在大型项目中使用它并且XML文件变得太大,那么XUnit插件就不再起作用了。 所以我不得不将 log_level 更改为 test_suite 。仅记录错误,不记录成功的检查。