当我开始使用Java 7时,我立即注意到Cobertura Maven插件不支持它 。 这对我来说是个大问题,因为我每天都使用代码覆盖率报告。 我做了一些研究,发现了JaCoCo代码覆盖库 。 看起来很有趣,我决定试一试。
问题在于配置它确实很困难,并且花费了大量时间。 我阅读了许多教程,只是发现其中给出的说明对我不起作用。 然后我遇到了这个博客文章 ,一切都准备就绪。
尽管该博客文章对我来说非常有价值,但它有点含糊。 我认为,对JaCoCo Maven插件的用法进行更详细的解释很有价值。
这篇博客文章描述了我们如何使用JaCoCo Maven插件为单元和集成测试创建代码覆盖率报告。
我们的构建要求如下:
- 运行测试时,我们的构建必须为单元测试和集成测试创建代码覆盖率报告。
- 代码覆盖率报告必须在单独的目录中创建。 换句话说,必须将用于单元测试的代码覆盖率报告创建到与用于集成测试的代码覆盖率报告不同的目录中。
让我们开始吧。
注意 :此博客文章的示例应用程序基于我的博客文章“ Maven集成测试”的示例应用程序。 如果尚未阅读,建议您在阅读此博客文章之前先阅读它。
配置JaCoCo Maven插件
我们使用JaCoCo Maven插件有两个目的:
- 它使我们可以访问JaCoCo运行时代理 ,该代理记录了执行覆盖率数据。
- 它根据JaCoCo运行时代理记录的执行数据创建代码覆盖率报告。
我们可以按照以下步骤配置JaCoCo Maven插件:
- 将JaCoCo Maven插件添加到我们的POM文件的插件部分。
- 为单元测试配置代码覆盖率报告。
- 配置代码覆盖率报告以进行集成测试。
下面将更详细地描述这些步骤。
将JaCoCo Maven插件添加到POM文件
通过将以下插件声明添加到其“ 插件”部分,我们可以将JaCoCo Maven插件添加到我们的POM文件中:
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.6.3.201306030806</version>
</plugin>
让我们继续前进,了解如何为单元测试配置代码覆盖率报告。
配置单元测试的代码覆盖率报告
我们可以通过将两个执行添加到插件声明中来为单元测试配置代码覆盖率报告。 这些执行方式如下所述: <