我想在我的项目中进行测试覆盖。我创建了个人资料 我的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 clean install -DfailIfNoTests = false -P test-coverage mvn声纳:声纳
我无法获得测试报道,我错过了什么? 我的声纳版本:4.3
答案 0 :(得分:1)
您遇到的主要问题是surefire maven插件的argLine
属性的定义,该属性应设置为属性而不是插件的配置。
因为当您这样做时,JaCoCo maven插件无法设置argline来配置其代理。
因此argLine应该被定义为你的pom中的一个属性。
有关详细信息,请参阅http://docs.sonarqube.org/display/SONAR/JaCoCo+Plugin。
答案 1 :(得分:0)
你应该能够在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>
答案 2 :(得分:0)
只需将你的argline设置为这样
即可<argLine>
${argLine} -Xms128m -Xmx1G -XX:MaxPermSize=128M
</argLine>
当JaCoCo为其代理设置argLine时,你不会覆盖它,你只需将它附加到它上面。