1. ホーム
  2. java

[解決済み] コードカバレッジのためのSonarQubeの適切なセットアップ

2022-03-10 18:58:49

質問

SpringBootのバックエンドアプリケーションサーバーで、Mavenを使用して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 コマンドラインを使用して、ビルド/テスト後にプロジェクトの更新を実行します。

を使用します。 Overview sonar-cloud上のボードはこのようになっています。

少なくともユニットテストは認識されるようになったが、なぜかコードカバレッジはまだ0%だ。さらに、ここに Measures というボードがあります。

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

また、SonarQubeが私のテストを認識しているにもかかわらず、実際にはテストのコード行そのものがテストされていないと言うのも不可解です。これはどういうことなのでしょうか?

解決方法は?

SonarQubeの ドキュメント :

SonarSourceのアナライザは、テストの実行やレポートの作成は行いません。事前に作成されたレポートをインポートするだけです。

Java のコードカバレッジを生成するための一般的なライブラリは、次のとおりです。 ジャココ .

SonarQubeが提供する このガイド を使用して、Jacocoのレポートを作成し、インポートすることができます。