我有一个Java项目,其中包含许多Maven模块和大量的单元/集成测试。该项目配置为通过surefire插件创建测试报告。现在,该插件基本上为每个测试类创建一个XML报告,并计划每天运行一次并在Jenkins上执行。
我想要做的是,将那些XML报告发送到测试管理系统(XRAY),以使其更加可见和可管理。我的(幼稚)方法是仅在Jenkins上添加构建后脚本,然后通过curl将那些报告发送到测试管理REST-API。该API提供了一次发送单个报告文件的方式。此报告文件可以是单个文件,也可以是嵌套文件,即我基本上可以发送以下两个文件,并且可以正常工作:
单个报告
<testsuite>
...
</testsuite>
汇总报告
<testsuites>
<testsuite ... />
<testsuite ... />
</testsuites>
REST-API可以处理IBM JUnit schema和标准surefire schema
出现问题;我显然希望将这些报告合并为一个,以避免不得不向REST-API发出十亿个请求。但是我似乎找不到自动的方法。到目前为止,我尝试过的是
我想到的唯一另一种方法是自己编写“合并脚本”,可能使用某种XSLT转换。但是我宁愿不要。感谢您的任何帮助,谢谢!
答案 0 :(得分:1)
解决方案是为此使用外部实用程序,因为surefire似乎不支持它。 我已经成功使用了junit-merge utility,它是一个NPM软件包,例如您在this tutorial中看到的。 用法非常简单;您只需要指定包含多个基于JUnit XML的报告的输出文件和输入文件夹即可。
junit-merge -o results.xml -d target/surefire-reports/