我想在我的项目中进行测试覆盖。我创建了配置文件:我的pom xml配置文件是:
<profile>
<id>test-coverage</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven.surefire.plugin.version}</version>
<configuration combine.self="override">
<redirectTestOutputToFile>true</redirectTestOutputToFile>
<testFailureIgnore>true</testFailureIgnore>
<argLine>
-Xms128m -Xmx1G -XX:MaxPermSize=128M
</argLine>
<groups>com.project.test.annotation.QuickTest</groups>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.1.201405082137</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>
</plugin>
</plugins>
</build>
</profile>我正在运行这些命令: mvn全新安装-DfailIfNoTests=false -P测试覆盖mvn sonar:sonar
我不能得到测试覆盖率,我错过了什么?我的声纳版本: 4.3
发布于 2014-08-18 22:26:35
您遇到的主要问题是surefire maven插件的argLine属性的定义,它应该设置为一个属性,而不是在插件的配置中。因为当您这样做时,JaCoCo maven插件无法设置argline来配置它的代理。
因此argLine应该被定义为pom中一个属性。
有关更多详细信息,请参阅http://docs.sonarqube.org/display/SONAR/JaCoCo+Plugin。
发布于 2014-08-19 14:05:15
您应该能够向surefire插件添加一个jacoco侦听器,例如
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<!-- Minimal supported version is 2.4 -->
<version>2.13</version>
<configuration>
<properties>
<property>
<name>listener</name>
<value>org.sonar.java.jacoco.JUnitListener</value>
</property>
</properties>
</configuration>
</plugin>发布于 2016-04-13 22:40:07
只需将argline设置为如下所示
<argLine>
${argLine} -Xms128m -Xmx1G -XX:MaxPermSize=128M
</argLine>这样,当JaCoCo为它的代理设置argLine时,您不会覆盖它,只需将您的just附加到它。
https://stackoverflow.com/questions/25363271
复制相似问题