LoginSignup
4
3

SonarQubeでSpringプロジェクトのソース解析、テストカバレッジを確認してみる

Posted at

はじめに

業務でSonarQubeを使用していますが、日本語のドキュメントが少ないと感じるので、
ローカルでSonarQubeの環境構築からSpring Boot + Kotlinで作成したアプリのソース解析とテストカバレッジの確認まで記事としてまとめてみました。

SonarQubeとは

ざっくり簡単に言うと、ソースの静的解析を行うオープンソースツールです。
ソースをレビューしてくれて、重複コードの検出や脆弱性のある箇所を教えてくれます。

公式サイト
https://www.sonarsource.com/

環境

macOS Ventura : 13.3.1
SonarQube : 9.9.0
JaCoCo : 0.8.9
Docker : 20.10.24
Gradle : 8.1.1
Spring boot : 3.0.6
kotlin : 1.8.20
IntelliJ IDEA : 2022.2.3 (Community Edition)

DockerでSonarQubeのコンテナを作成する

SonarQubeは各バージョンのイメージが公開されており環境構築が楽なので、
SonarQubeを試してみるならDockerがおすすめです。
https://hub.docker.com/_/sonarqube

docker run -d --name sonarqube -p 9000:9000 sonarqube:9.9.0-community

docker runでコンテナを作成できます。
オプションについては以下の通りです。
-d:バッグラウンド実行
—name:コンテナ名
-p:ポート指定
sonarqube:使用したいバーション(今回は最新のを使用)
※developerは有償なので、communityを選択してください。

Dockerのインストールがまだの方は下記を参考にしてみてください。
Mac:https://docs.docker.com/desktop/install/mac-install/
Windows:https://docs.docker.com/desktop/install/windows-install/

SonarQubeへログイン

コンテナが正常に作成されるとSonarQubeへ以下のURLでアクセスできます。
初期アカウントはid、Passwordともにadminです。
ログインするとPasswordの変更を求めれらので、変更してください。
http://localhost:9000

スクリーンショット 2023-04-22 3.16.50.png

スクリーンショット 2023-04-22 3.18.31.png

Passwordを更新するとダッシュボードが表示されます。
ダッシュボード上でプロジェクトを作成することも可能ですが、
今回はローカルで作成したdemoアプリをアップロードします。
スクリーンショット 2023-04-22 11.04.41.png

Token作成

garadleの設定にTokenが必要なので作成していきます。
スクリーンショット 2023-04-22 16.49.52.png
スクリーンショット 2023-04-22 16.49.06.png

gradleの設定

Hello World!を返すだけのシンプルなAPIですが、
サンプルソースとして以下のリポジトリからクローンできます。

https://github.com/h-i-ist/sonarqube-sample

gradle.propertiesへTokenの設定を行います。

systemProp.sonar.login=Token

sonarqubeの各設定はbuild.gradle.ktsで行います。

プロパティについては公式サイトでまとまっています。

https://docs.sonarqube.org/9.9/analyzing-source-code/analysis-parameters/

sonarqube {
	properties {
             // プロジェクトキー
		property("sonar.projectKey", "demo")
            // サーバーURL
		property("sonar.host.url", "http://localhost:9000")
            // xml形式のテストレポートの場所を指定
		property("sonar.junit.reportPaths", "build/test-results/test")
            // JaCoCoカバレッジレポートの場所を指定
		property("sonar.coverage.jacoco.xmlReportPaths", "build/reports/jacoco/test/jacocoTestReport.xml")
	}
}

SonarQubeで解析結果を確認

gradleの設定が完了したらいよいよSonarQubeで解析結果を確認します。

IntelliJで実行する場合
スクリーンショット 2023-04-23 0.38.55.png

コマンドで実行する場合

./gradlew sonarqube

実行が成功するとhttp://localhost:9000/projectsdemo プロジェクトが作成されていることが確認できると思います。
スクリーンショット 2023-04-25 0.16.32.png

サマリの画面からテストカバレッジやUnitTestの件数も確認できます。
スクリーンショット 2023-04-25 0.34.04.png

5分もあればSonarQubeをローカルで実行して、サンプルプロジェクトを解析することができると思います。
今回は簡単なものでしたが、自分で作成したプロジェクトを解析してみたり遊んでみてください。
少しでもSonarQubeの理解の助けになれば幸いです。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3