gpt4 book ai didi

java - 合并 surefire JUnit 报告

转载 作者:行者123 更新时间:2023-12-04 17:43:17 25 4
gpt4 key购买 nike

我有一个 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 转换。但我宁愿不。非常感谢任何帮助,谢谢!

最佳答案

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

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

关于java - 合并 surefire JUnit 报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53416257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com