Sonarqube在运行后没有显示代码覆盖率

Tar*_*nti 11 intellij-idea maven jacoco sonarqube sonarqube-scan

我和maven一起经营着sonarqube.

我用以下方式安装它.使用brew,我安装mysqlsonar.

当我运行时,我得到7个严重的错误,但88个测试的代码覆盖率为零 Sonarqube分析

当我使用IntelliJ的工具运行它时,我得到以下结果.(不是零!) IntelliJ分析

这是我直接检查Jacoco结果的时候.在$base_direc/target/jacoco/index.html
Jacoco结果

使用声纳扫描仪运行时的代码相同声纳扫描仪


这是我的maven配置
maven配置

我的 ~/.m2/settings.xml
设置 -  PIC1
设置 -  PIC2


编辑1:我在日志中找到了这个. 不支持Db


Edit2:我已编辑~/.m2/settings.xml 添加

<properties>
    <sonar.host.url>http://localhost:9000/</sonar.host.url>
</properties>
Run Code Online (Sandbox Code Playgroud)

编辑/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结果但不在声纳中.


是否有可能如果发现错误声纳拒绝进行代码覆盖?!

Tar*_*nti 9

我找到了解决方案 -

我包含的maven插件配置了Jacoco的destfile和datafile ${basedir}/target/coverage-reports/jacoco-unit.exec

但默认情况下,声纳会读到${basedir}/target/jacoco.exec.我更改了http:// localhost:9000/settings?category = java的默认值


参考:声纳代码覆盖范围

  • 参考链接已死 (2认同)

SAN*_*ITH 5

我已通过以下步骤解决了此问题:

1.首先,我在 pom.xml 中添加配置。

<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>
Run Code Online (Sandbox Code Playgroud)

2.在sonarqube属性文件中添加以下部分。

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
Run Code Online (Sandbox Code Playgroud)