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

时间:2014-08-03 19:47:47

标签: maven jenkins code-coverage jacoco

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

感谢任何帮助/指针。

由于

1 个答案:

答案 0 :(得分:3)

肮脏的伎俩'这里是积累雅各布报道的报道。由于你有不同的项目,没有合法的方法可以做到这一点,因为设计maven项目的建立没有直接的依赖。

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

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

Here is complete enough illustration这个想法和许多对​​更简单项目的引用。而here is another question则说明了这一点。

希望这会有所帮助。我为我的多模块项目采用相同的方法来覆盖下层'在为更高层进行测试时的模块'的。