21

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

有人说我们只需要使用 XLST 来转换 XML 格式,其他人建议 XML 在此之前需要一些黑客攻击(任何人都有 XSL 来将 Boost.Test XML 日志转换为可呈现的格式?)。一些人建议xUnit插件可以原生地理解 boost.test XML 格式,其他人则说它不能

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

4

3 回答 3

26

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 步骤配置为results.xml使用 BoostTest-1.x 格式进行解析。

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

于 2013-05-14T17:50:21.887 回答
3
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`
于 2015-02-20T11:56:00.590 回答
0

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

于 2015-06-25T13:05:06.287 回答