素敵なサムシングを独断と偏見で一方的に紹介するブログ(´・ω・`)

IT

【HTMLガバレッジレポート】sbtのJaCoCoプラグインでJunitの実行結果をドキュメント化しよう【PlayFramework2.7】

投稿日: 2020年2月22日
最終更新日:

スポンサーリンク

336×280




ユニットテストのガバレッジを自動生成しよう

皆さんはユニットテスト書いていますか?

品質をあげるにはしっかりとユニットテストを書いて、CI環境でしっかり実施する事が大事です。

今回ご紹介するのは、ユニットテストの実施によって実行されたソース部分のガバレッジレポートをHTML形式で自動生成してくれるJaCoCoというプラグインをご紹介しようと思います。

出力対象のパッケージを制御する方法については以下でご紹介していますので、合わせてみて頂ければなと思います。

手順

sbt-jacocoプラグインの追加

まずはプロジェクトにsbt用のJaCoCoプラグインを追加しましょう。

project/plugins.sbtに以下を追記してください。

設定はたったこれだけです!

実行方法

テスト実行時のコマンドをsbt jacocoに変えて実行する事でJUnitの実行とレポートの生成を行なってくれます。

生成ディレクトリは {プロジェクトルート}/target/scala-2.13/jacoco/report です。

結果の中には、PlayFrameworkが自動で生成するパッケージ(routerviewscontroller.javascriptなどがありますがスルーしましょう。)

取り急ぎ、sbtが自動生成してくれたHomeControllerクラスのテスト結果を見てみましょう。

緑色になっているところがユニットテストで実行されたコード部分になります。

ユニットテスト作成の一つの指標として、全てのコードを通っていることを担保するには良いガバレッジに使えそうですね♪

実行されていない場合

実行されていない場合はこのように赤くなります。

なので、まずは全ての行が緑色になるようにユニットテストやソースの修正をしましょう。

※今回は紹介するためにテスト元クラスをいじってJaCoCoの動きをご紹介していますorz

if文を網羅していない場合

また、以下のような引数の値によってif文などの分岐が存在する場合に、ユニットテストで網羅できていない場合は以下のように黄色くなります。

その場合は、ユニットテスト側で分岐を網羅するようなケースを追加してあげることでガバレッジが100%になります。

ちなみに、分岐の中に入ってソースの全てが実行されたとしても、falseのパターンが実行されていないと判断されて黄色になりますのでご注意を。

本日のオススメ商品

終わりに

以上のように、ユニットテストと組み合わせる事でとても有能なガバレッジを自動生成してくれます。

ユニットテストの実施結果を残すことはとても大事なので、是非導入してみてください♪

336×280




336×280




CATEGORIES & TAGS

IT, , , , , , , , , ,

blogenist

Author: blogenist