JaCoCoというJUnitのカバレッジツールを利用すると、C1(判定条件網羅)レベルのカバレッジを取得することができる。
C1(判定条件網羅)とは、カバレッジの網羅基準の1つで、全ての判定条件の真偽が少なくとも一回実行されるようなテストを実施するレベルで、分岐網羅ともいう。カバレッジの網羅基準はC0(命令網羅)等、他にもいろいろな種類がある。詳細は以下のサイトを参照のこと。
https://dlrecord.hatenablog.com/entry/2020/04/29/201223
今回は、以前作成したJUnitのプログラムを利用して、IntelliJ IDEA上で、JaCoCoを利用してC1(判定条件網羅)レベルのカバレッジレポートを取得してみたので、その手順を共有する。
前提条件
下記記事の実装が完了していること。
実行カバレッジ設定の変更手順
実行カバレッジの設定を変更する手順は、以下の通り。
1) 「実行」メニューから「構成の編集」を押下する。
2) DemoUtilTestが選択されていることを確認し、「コード・カバレッジ」タブを押下する。
3) カバレッジ・ランナーを「JaCoCo」に変更し、「適用」ボタンを押下する。
4) この状態で「OK」ボタンを押下し、画面を閉じる。
JaCoCoによる実行カバレッジレポートの取得手順
JaCoCoによる実行カバレッジレポートを取得する手順は、以下の通り。
1) カバレッジ・ランナーでJaCoCoを設定した状態で、「実行カバレッジ」を実行する。
7
2) カバレッジを確認し、テスト対象クラス「DemoUtil」のカバレッジが100%になっていることが確認できる。
以降の処理で、カバレッジレポートを作成する。
3) 「分析」メニューから「カバレッジ・レポートの作成」を押下する。
4) 出力ディレクトリーを指定し、「保存」ボタンを押下する。
5) 以下のように、出力ディレクトリーで指定した場所にカバレッジ結果が出力されるので、「index.html」をダブルクリックする。
6) 順にリンクを辿っていくと、行レベル(Line)レベルで100%のカバレッジになっていることが確認できる。
上図で、Missed InstructionsがC0(命令網羅率)を表し、Missed BranchesがC1(条件網羅率)を表す。
要点まとめ
- IntelliJ IDEA上でも、JaCoCoを利用してカバレッジレポートを出力することができる。
- JaCoCoを利用すると、C1(判定条件網羅)レベルのカバレッジレポートを出力することができる。