私は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の結果は表示できましたが、ソナーでは表示できませんでした。
バグが見つかった場合、ソナーがコードカバレッジを拒否する可能性はありますか?!
私は解決策を見つけました-
私が含めたMavenプラグインには、Jacocoのdestfileとdatafileの構成が${basedir}/target/coverage-reports/jacoco-unit.exec
ただし、デフォルトでは、ソナーは${basedir}/target/jacoco.exec
。 http:// localhost:9000/settings?category = Java のデフォルトを変更しました
参照: ソナーコードカバレッジ
次の手順を使用してこれを解決しました。
<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