使用Jenkins和boost.测试单元测试

Using Jenkins with boost.test unit tests

本文关键字:测试 单元测试 boost Jenkins 使用      更新时间:2023-10-16

我在这方面做了一些谷歌搜索,发现很多关于让Jenkins理解boost的讨论。test的XML输出格式,但没有规范引用。

有些人说我们只需要使用XLST来转换XML格式,另一些人则认为在此之前需要对XML进行一些修改(任何人都有转换Boost的XSL)。将XML日志测试为可呈现的格式?)。有些人认为xUnit插件本身可以理解boost。测试XML格式,其他人说不能

因为我的搜索结果跨越了5年,我意识到事情可能已经改变了。所以我正在寻找一个最新的关于使用Jenkins运行和评估boost单元测试的最佳方法的答案。

xUnit解析工作为我使用Jenkins 1.498, xUnit 1.52, boost 1.42。我有一个使用boost 1.53的新项目,XML输出格式在我看来是一样的,但由于我还没有在Jenkins中设置单元测试,所以我不能100%确定输出是兼容的。

根据xUnit插件注释中的建议,我正在运行Boost测试程序:

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

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

如果你仍然有问题,也许你可以用更多关于你的版本和你如何生成测试输出的细节来更新你的问题。

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`

好的,通常情况下,它与这个选项一起工作。但是,如果您在大型项目中使用它,并且XML文件变得太大,XUnit插件就不再工作了。所以我必须将log_level更改为testronguite。只有错误被记录,成功的检查不被记录。