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

IT

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

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

ねこじゃすり

created by Rinker
PEPPY(ペピイ)
¥3,850 (2025/01/05 12:56:12時点 Amazon調べ-詳細)

猫を魅了する魔法の装備品!

Anker PowerCor

created by Rinker
Anker
¥3,990 (2025/01/05 12:09:11時点 Amazon調べ-詳細)

旅行には必須の大容量モバイルバッテリー!

【最新機種】GoPro hero11 Black

created by Rinker
¥61,300 (2025/01/05 20:59:47時点 楽天市場調べ-詳細)

最新機種でVlogの思い出を撮影しよう!

[ノースフェイス] THE NORTH FACE メンズ アウター マウンテンライトジャケット

created by Rinker
THE NORTH FACE(ザノースフェイス)
¥33,000 (2025/01/05 13:22:08時点 Amazon調べ-詳細)

防水暴風で耐久性抜群なので旅行で大活躍です!

ペヤング ソースやきそば 120g×18個

created by Rinker
ペヤング
¥3,280 (2025/01/05 12:33:38時点 Amazon調べ-詳細)

とりあえず保存食として買っておけば間違いなし!

Bauhutte ( バウヒュッテ ) 昇降式 L字デスク ブラック BHD-670H-BK

created by Rinker
Bauhutte(バウヒュッテ)
¥15,855 (2025/01/05 12:09:12時点 Amazon調べ-詳細)

メインデスクの横に置くのにぴったりなおしゃれな可動式ラック!

MOFT X 【新型 ミニマム版】 iPhone対応 スマホスタンド

Amazon一番人気のスマホスタンド!カード類も収納出来てかさ張らないのでオススメです!

スポンサーリンク

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

関連記事

YouTubeも見てね♪