我和maven一起经营着sonarqube。
我使用以下way安装了它。
使用brew
,我安装了mysql
和sonar
。
当我运行时,我得到7个严重的错误,但88个测试的代码覆盖率为零
当我使用IntelliJ的工具运行它时,我得到以下结果。 (不是零!)
这是我直接检查Jacoco结果的时候。在$base_direc/target/jacoco/index.html
中
EDIT2:
我已编辑~/.m2/settings.xml
添加
<properties>
<sonar.host.url>http://localhost:9000/</sonar.host.url>
</properties>
已编辑/usr/local/Cellar/sonarqube/6.3.1/libexec/conf/sonar.properties
已添加sonar.host.url=http://localhost:9000/
已添加编辑/usr/local/etc/sonar-scanner.properties
- sonar.host.url=http://localhost:9000/
以上述所有方式运行应用程序并且结果相同,即我可以看到Jacoco结果但不在声纳中。
如果发现错误,声纳是否可能拒绝进行代码覆盖?!
答案 0 :(得分:8)
我找到了解决方案 -
我包含的maven插件将Jacoco的destfile和数据文件配置为${basedir}/target/coverage-reports/jacoco-unit.exec
但默认声纳读取${basedir}/target/jacoco.exec
。我更改了http://localhost:9000/settings?category=java
答案 1 :(得分:0)
我已通过以下步骤解决了此问题:
<properties>
<sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
<sonar.jacoco.reportPath>${project.basedir}/../target/jacoco.exec</sonar.jacoco.reportPath>
<sonar.language>java</sonar.language>
</properties>
sonar.projectName=${JOB_NAME}
sonar.projectVersion=1.0.0
sonar.sources=src/main
sonar.sourceEncoding=UTF-8
sonar.language=java
sonar.tests=src/test
sonar.junit.reportsPath=target/surefire-reports
sonar.surefire.reportsPath=target/surefire-reports
sonar.jacoco.reportPath=target/jacoco.exec
sonar.binaries=target/classes
sonar.java.coveragePlugin=jacoco
sonar.verbose=true
答案 2 :(得分:0)
我遇到了同样的问题,我会帮助您解决。这里的第一件事是浏览您的pom文件。
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<jacoco.version>0.8.5</jacoco.version>
<sonar.jacoco.reportPath>target/jacoco-ut.exec</sonar.jacoco.reportPath>
<sonar.jacoco.itReportPaths>target/jacoco-it.exec</sonar.jacoco.itReportPaths>
</properties>
在pom文件中,您使用了 jacoco-ut.exec ,您必须在自己的计算机上使用以下属性 在詹金斯执行SonarQube扫描仪
sonar.java.binaries=target/classes
sonar.junit.reportsPath=target/surefire-reports
sonar.surefire.reportsPath=target/surefire-reports
sonar.jacoco.reportPath=target/jacoco-ut.exec
请记住关于pom中的jacoco.exec和在Jenkins中执行SonarQube Scanner的属性名称