gpt4 book ai didi

maven - 使用 jacoco 和 maven 的集成测试代码覆盖率

转载 作者:行者123 更新时间:2023-12-01 23:54:00 33 4
gpt4 key购买 nike

我有一个 Maven 测试项目来测试我们的开发代码。这两个是不同的 Maven 项目。测试项目通过 maven 依赖访问开发项目。我想使用 jacoco 和 maven 插件测量针对开发项目的集成测试代码覆盖率。以前我使用 jacoco 和声纳完成它,其中测试代码生成 jacoco.exec 文件然后我手动构建开发项目将 jacoc.exec 作为 arg 在 jenkins 中传递并获得代码覆盖率报告。我基本上不是在寻找 100% 自动化的方式来做这件事。阅读了几篇将 jacoco 与 maven 结合使用的文章,但所有这些文章都使用单个项目。

感谢任何帮助/指点。

谢谢

最佳答案

此处的“肮脏伎俩”是积累 Jacoco 覆盖率报告。由于您有不同的项目,因此没有合法的方式来执行此操作,因为按照设计,maven 项目将在没有直接依赖的情况下构建。

但在现实世界中没有什么是理想的:

  • 您指向具有固定路径的 JaCoco 报告文件。顺便说一句,您可以相对于您的 Maven 存储库执行此操作,这是一种非常干净的方法。
  • 您分两个阶段构建项目:第一阶段构建所有运行所有可能测试的项目。每个单元和集成测试最好有单独的 JaCoco 报告文件。但它们应该在项目之间相同,并且项目应配置为累积报告。
  • 在执行第二遍时,您将运行您的 mvn sonar:sonar 魔法。这将为您带来 2 个声纳项目(据我所知,现在您拥有相同的图片),但覆盖范围会更加精确。关键是前一阶段计算的统一报表。

Here is complete enough illustration这个想法以及对更简单项目的大量引用。和 here is another question这说明了想法。

希望这对您有所帮助。我对我的多模块项目采用相同的方法,以便在对“高层”模块进行测试时覆盖“低层”模块。

关于maven - 使用 jacoco 和 maven 的集成测试代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25108461/

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