我花了几天的时间尝试让SonarQube显示Maven Jacoco插件的单元测试代码覆盖率。
我一直坚持的错误信息是
[INFO] Analysing .../target/jacoco.exec
[WARNING] Coverage information was not collected. Perhaps you forget to include debug information into compiled classes?target/site/jacoco/index.html下的报告按预期生成,并包含行突出显示和行号。我已经读到,如果编译的类中没有包含调试信息,那么突出显示和行号将不会显示在此报告中。
我已经阅读了缺省情况下Maven包含调试信息,但是,以防我在我的项目maven-编译器-plugin设置中包含以下配置
<configuration>
<debug>true</debug>
<debuglevel>lines,vars,source</debuglevel>
</configuration>我的settings.xml中有以下属性(故意省略了主机和登录名)
<properties>
<sonar.host.url></sonar.host.url>
<sonar.login></sonar.login>
<sonar.ws.timeout>300</sonar.ws.timeout>
</properties>我有我的Jacoco插件的以下配置。
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.7.201606060606</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>我的目标位于默认位置jacoco.exec /Jacoco.exec,并且SonarQube可以正确地找到它。
相关版本
Maven 3.2.2
Maven编译器3.5.1
Maven Surefire 2.19.1
Java 1.8.0_11
SonarQube服务器5.6
Jacoco Maven插件0.7.7.201606060606
Mac OS X 10.10.5
提前感谢您的帮助!
--编辑
我正在运行以下maven命令
mvn clean package
mvn sonar:sonar
发布于 2017-04-13 02:40:49
我关注了here这篇文章,它只对我有效,我只更新了代码以反映最新的JaCoCo插件版本
<dependency>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.9</version>
</dependency>并将JaCoCo代理添加到我的POM插件中:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
<!-- JaCoCo configuration -->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.9</version>
<executions>
<execution>
<id>default-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>default-report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>并运行以下maven命令(在Jenkins中):
clean deploy $SONAR_MAVEN_GOAL -Dsonar.host.url=$SONAR_HOST_URL我有SonarQube 6.3.0.19869,Jenkins 2.46.1,Jenkins 2.15.1中的Maven集成插件(较旧的插件导致了我堆栈中的SonarQube问题)。
https://stackoverflow.com/questions/37875399
复制相似问题