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

问题描述 投票:8回答:2

我和maven一起经营着sonarqube。

我使用以下way安装它。使用brew,我安装了mysqlsonar

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

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

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

使用sonar-scannersonar-scanner运行时的代码相同


这是我的maven配置 maven configuration

我的~/.m2/settings.xml settings-pic1 settings-pic2


编辑1:我在日志中找到了这个。 Db not supported


编辑2:我已经编辑了~/.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结果但不是声纳。


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

maven intellij-idea sonarqube jacoco sonarqube-scan
2个回答
9
投票

我找到了解决方案 -

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

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


参考:Sonar Code Coverage


0
投票

我通过使用以下步骤解决了这个问题:

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>

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

© www.soinside.com 2019 - 2024. All rights reserved.