合并surefire JUnit报告

时间:2018-11-21 16:14:49

标签: java maven jenkins junit jira-xray

我有一个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发出十亿个请求。但是我似乎找不到自动的方法。到目前为止,我尝试过的是

  • surefire plugin合并XML报告,但似乎不存在适当的选项
  • 将测试组织到一个(JUnit)测试套件中,但是输出仍然是每个测试的xml报告
  • 找到可解决此问题的替代插件/工具,不走运

我想到的唯一另一种方法是自己编写“合并脚本”,可能使用某种XSLT转换。但是我宁愿不要。感谢您的任何帮助,谢谢!

1 个答案:

答案 0 :(得分:1)

解决方案是为此使用外部实用程序,因为surefire似乎不支持它。 我已经成功使用了junit-merge utility,它是一个NPM软件包,例如您在this tutorial中看到的。 用法非常简单;您只需要指定包含多个基于JUnit XML的报告的输出文件和输入文件夹即可。

junit-merge  -o results.xml -d target/surefire-reports/