SonarQubeでテストカバレッジを表示する
うちのチーム自動テストを導入しようとしてます。
とはいえ、ゼロから始めるには指標がないとしんどいですよね。
JJUG CCCで知見を得たSonarQubeを試すことにしました。
SonarQubeの起動
Docker使ってぱぱっと試します。
docker run -d --name postgres-sonar -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar postgres docker run -d --name sonarqube --link postgres-sonar:postgres -p 9000:9000 -p 9092:9092 -e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar -e SONARQUBE_JDBC_URL=jdbc:postgresql://postgres/sonar sonarqube
PostgresqlもDockerで起動させて、--link
オプションでつなげています。
ブラウザからhttp://<起動させたホスト>:9000
で開くことができます。
JaCoCoの導入
これでプロジェクト上でmavenから起動させればコードの静的解析をしてくれますが、これだけだとカバレッジを表示してくれませんでした。
カバレッジを表示するには、JaCoCoなどであらかじめ計算しておく必要があります。
JaCoCoの導入も簡単。
プロジェクトのpom.xml
に以下を追記します。
<build> <plugins> ... <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.7.6.201602180812</version> </plugin> </plugins> </build>
mavenで実行
あとはmavenコマンドを実行するだけです。
mvn clean jacoco:prepare-agent test jacoco:report sonar:sonar -Dsonar.host.url=http://<起動させたホスト>:9000
今回は、個人的に作ってGitHubに上げてるプロジェクトを解析してみました。
コマンドが終了したら再度http://<起動させたホスト>:9000
を開きましょう。
プロジェクト一覧(今回は一つだけ)が表示され、可視化した図が表示されます。
詳しく見るにはプロジェクトをクリックします。
解析結果が表示されます。赤色のとこは直した方がよくて、緑はオーケーです。多分。
Dashboardsをみるともうちょっと詳しく数字を出してくれます。
カバレッジは58.4%でした。網羅できてないですね。
面白いのがTechnical Debt、技術的負債。一日分の負債を抱えてます。
詳しく見ていくと、なんとレビューしてくれてます。
SonarQubeすごいです。感動しました。 これを指標にテストコードを書いていきたいと思います。
今回2回目の参加ですが、JJUG CCCでは毎回有益な知見をいただけて感謝しかないです。
アウトプット本当に素晴らしい。いつか勉強会とか登壇してみたいな、とか。