Java 合并surefire JUnit报告

Java 合并surefire JUnit报告,java,maven,jenkins,junit,jira-xray,Java,Maven,Jenkins,Junit,Jira Xray,我有一个Java项目,它由大量maven模块和大量单元/集成测试组成。该项目配置为通过surefire插件创建测试报告。现在这个插件基本上为每个测试类创建一个XML报告,并计划每天运行一次,在Jenkins上执行 我想做的是,将这些XML报告发送到测试管理系统(X射线),以便使它们更可见和更易于管理。我(天真的)方法是只在Jenkins上添加一个构建后脚本,并通过curl将这些报告发送到测试管理的REST-API。此API提供了一种一次发送单个报告文件的方法。此报告文件可以是单个的,也可以是嵌套

我有一个Java项目,它由大量maven模块和大量单元/集成测试组成。该项目配置为通过surefire插件创建测试报告。现在这个插件基本上为每个测试类创建一个XML报告,并计划每天运行一次,在Jenkins上执行

我想做的是,将这些XML报告发送到测试管理系统(X射线),以便使它们更可见和更易于管理。我(天真的)方法是只在Jenkins上添加一个构建后脚本,并通过curl将这些报告发送到测试管理的REST-API。此API提供了一种一次发送单个报告文件的方法。此报告文件可以是单个的,也可以是嵌套的,也就是说,我基本上可以发送以下两种文件,并且可以正常工作:

单一报告

  <testsuite>
  ...
  </testsuite>
  <testsuites>
    <testsuite ... />
    <testsuite ... />
  </testsuites>

...
汇总报告

  <testsuite>
  ...
  </testsuite>
  <testsuites>
    <testsuite ... />
    <testsuite ... />
  </testsuites>

REST-API可以同时处理这两个问题,即

现在开始解决问题;显然,我希望将这些报告合并为一个,以避免向REST-API发出10亿个请求。然而,我似乎找不到一种自动化的方法。到目前为止我试过的是

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

我能想到的唯一其他方法是自己编写一个“合并脚本”,可能使用某种XSLT转换。但我不想。非常感谢您的帮助,谢谢

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

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