从SonarQube6.2
开始,测试报告不再在这些类别中分开。SonarQube
将所有测试报告合并为一份涵盖整体的测试报告。因此,如果在Maven
项目中将单元测试(由Maven Surefire
插件运行)和集成测试(由Maven Failsafe
插件运行)分开进行测试,那么如何配置JaCoCo Maven
插件呢?
在以下各节中,提出了满足以下条件的解决方案:
- 构建工具:Maven。
- 该项目可以是多模块项目。
- 单元测试和集成测试是每个模块的一部分。
- 测试覆盖率是通过
JaCoCo Maven
插件来衡量的。
首先显示了Maven
项目结构,用于单元测试和集成测试的分离。然后显示了Maven
项目配置,其中包含单独的单元测试运行和集成测试运行。之后,我们来看看Maven
项目配置以生成涵盖单元测试和集成测试的测试报告。最后,SonarQube
的仪表板中显示了SonarQube
的配置,用于测试报告的可视化查看。
Maven项目结构
首先,我们看一下默认的Maven
项目结构在单个模块项目中的样子。
FunTester-app
├── pom.xml
├── src
│ ├── main
│ │ └── java
│ └── test
│ └── java
目录src/main/java
包含生产源代码,目录src/test/java
包含测试源代码。我们可以将单元测试和集成测试放到这个目录中。但是我们想将这两种类型的测试放在单独的目录中。因此,我们添加了一个名为src/it/java
的新目录。然后将单元测试放在src/test/java
目录中,并将集成测试放在src/it/java
目录中,因此新的项目结构如下图所示。
FunTester-app
├── pom.xml
├── src
│ ├── it