我有一个使用 jacoco 版本 0.7.1.201405082137 和 maven 3.0.5 的项目。在项目中,我有一些单元测试,以及一些使用 arquillian 创建的测试。
为了区分单元测试和集成测试,我创建了两个 junit 类别:一个称为 FastTest,另一个称为 SlowTest。
在我用来运行所有测试的 Maven 配置文件中,我配置了这个插件:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<groups>SlowTest,FastTest</groups>
<systemPropertyVariables>
<arquillian.launch>wildfly_8_x</arquillian.launch>
</systemPropertyVariables>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${version.jacoco}</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
当我将这两个类别都保留在其中时,我只会得到用 SlowTest 注释的测试的覆盖率。但是所有的测试都会运行。如果我只运行用 FastTest 注释的那些,我也会得到正确的覆盖率。
在运行两种测试时,如何设置 jacoco 以获得正确的覆盖率?