JUnit

IntelliJ IDEA上でJaCoCoを利用してC1カバレッジを取得してみた

JaCoCoというJUnitのカバレッジツールを利用すると、C1(判定条件網羅)レベルのカバレッジを取得することができる。

C1(判定条件網羅)とは、カバレッジの網羅基準の1つで、全ての判定条件の真偽が少なくとも一回実行されるようなテストを実施するレベルで、分岐網羅ともいう。カバレッジの網羅基準はC0(命令網羅)等、他にもいろいろな種類がある。詳細は以下のサイトを参照のこと。
https://dlrecord.hatenablog.com/entry/2020/04/29/201223

今回は、以前作成したJUnitのプログラムを利用して、IntelliJ IDEA上で、JaCoCoを利用してC1(判定条件網羅)レベルのカバレッジレポートを取得してみたので、その手順を共有する。

前提条件

下記記事の実装が完了していること。

セッションからリストを取得するユーティリティクラスのJUnitテストを行ってみた以前このブログにて、セッションからリストを取得するユーティリティクラスを作成してみたが、今回はそのJUnitのソースコードを作成してみた...

実行カバレッジ設定の変更手順

実行カバレッジの設定を変更する手順は、以下の通り。

1) 「実行」メニューから「構成の編集」を押下する。
JUnitの設定_1

2) DemoUtilTestが選択されていることを確認し、「コード・カバレッジ」タブを押下する。
JUnitの設定_2

3) カバレッジ・ランナーを「JaCoCo」に変更し、「適用」ボタンを押下する。
JUnitの設定_3

4) この状態で「OK」ボタンを押下し、画面を閉じる。
JUnitの設定_4



JaCoCoによる実行カバレッジレポートの取得手順

JaCoCoによる実行カバレッジレポートを取得する手順は、以下の通り。

1) カバレッジ・ランナーでJaCoCoを設定した状態で、「実行カバレッジ」を実行する。
JUnit_カバレッジ取得_17

2) カバレッジを確認し、テスト対象クラス「DemoUtil」のカバレッジが100%になっていることが確認できる。
JUnit_カバレッジ取得_2



以降の処理で、カバレッジレポートを作成する。

3) 「分析」メニューから「カバレッジ・レポートの作成」を押下する。
JUnit_カバレッジ取得_3

4) 出力ディレクトリーを指定し、「保存」ボタンを押下する。
JUnit_カバレッジ取得_4

5) 以下のように、出力ディレクトリーで指定した場所にカバレッジ結果が出力されるので、「index.html」をダブルクリックする。
JUnit_カバレッジ取得_5

6) 順にリンクを辿っていくと、行レベル(Line)レベルで100%のカバレッジになっていることが確認できる。
JUnit_カバレッジ取得_6_1

JUnit_カバレッジ取得_6_2 JUnit_カバレッジ取得_6_3

上図で、Missed InstructionsがC0(命令網羅率)を表し、Missed BranchesがC1(条件網羅率)を表す。

要点まとめ

  • IntelliJ IDEA上でも、JaCoCoを利用してカバレッジレポートを出力することができる。
  • JaCoCoを利用すると、C1(判定条件網羅)レベルのカバレッジレポートを出力することができる。