web-dev-qa-db-ja.com

コードカバレッジのためのSonarQubeの適切な設定

Mavenを使用して、SpringBootバックエンドアプリケーションサーバーでJUnit5を使用しています。こちらがsonar-project.propertiesプロジェクトのルートにあるファイル:

sonar.Host.url=https://sonarcloud.io
sonar.login=xxx
sonar.organization=xxx
sonar.projectKey=xxx

sonar.sourceEncoding=UTF-8
sonar.language=Java
sonar.Java.source=12

sonar.sources=src/main/Java
sonar.test=src/test
sonar.Java.binaries=target/classes
sonar.junit.reportPaths=target/test-results/TEST-**.xml

sonar-scannerコマンドラインを実行して、ビルド/テスト後にプロジェクトを更新します。

Sonar-cloudのOverviewボードは次のようになります。

overview

少なくとも単体テストは認識されましたが、どういうわけかコードカバレッジに関してはまだ0%です。さらに、ここにMeasuresボードがあります:

measures

どうやら、私のテストは行をまったくカバーしていません。今、私はこれがおそらくテスト結果を適切にフックしなかったことを意味していることを認識していますが、それを行う方法がわかりません。

SonarQubeが私のテストを認識しているにもかかわらず、実際にテストのコード行自体はテストされていないというのも私を困惑させています。これはどういう意味ですか?

Testing tests?

3
payne

これが動作しているsonar-project.propertiesファイル:

# SONAR CLOUD CONFIGS
sonar.Host.url=https://sonarcloud.io
sonar.organization=xxx
sonar.projectKey=xxx
sonar.login=xxx

# SOURCES
sonar.Java.source=12
sonar.sources=src/main/Java
sonar.Java.binaries=target/classes
sonar.sourceEncoding=UTF-8

# EXCLUSIONS
# (exclusion of Lombok-generated stuff comes from the `lombok.config` file)
sonar.coverage.exclusions = **/*Exception.Java , **/MySpringBootApplication.Java

# TESTS
sonar.coverage.jacoco.xmlReportPaths=target/site/jacoco/jacoco.xml
sonar.junit.reportsPath=target/surefire-reports/TEST-*.xml
sonar.tests=src/test/Java
0
payne