コードカバレッジ
IntelliJ IDEA のコードカバレッジを使用すると、特定の実行中に実行されたコード行を分析できます。 これにより、テストでカバーされたコードの割合を決定し、テストカバレッジが不十分な領域を特定できます。
コードカバレッジ for Java プラグイン を有効化
この機能は、デフォルトで IntelliJ IDEA にバンドルされ有効になっている Code Coverage for Java プラグインに依存しています。 関連機能が利用できない場合は、プラグインを無効化していないことを確認してください。
Ctrl+Alt+S を押して設定を開き、 を選択します。
インストール済み タブを開き、 Java のコードカバレッジプラグインを見つけて、プラグイン名の横にあるチェックボックスを選択します。
カバレッジ付き実行
カバレッジ分析を実行するためのエントリポイントは、通常 アプリケーションを実行するために使用するものと同じです。
カバレッジ分析は、カバレッジエージェントが接続された対応する実行構成を実行します。 このエージェントはバイトコードをインストルメント化して、実行を行ごとに追跡します。 実行が完了すると、分析の結果が IDE に表示されます。
カバレッジスイート
カバレッジ suite は、特定の実行から得られたコードカバレッジデータの集合です。 各カバレッジ suite には、単一の実行構成(カバレッジ付きで実行の場合)または インポートしたカバレッジデータファイルのいずれかのデータが保存されます。
IntelliJ IDEA は coverage フォルダーの IDE システムディレクトリ にカバレッジ suite を保存します:
%LOCALAPPDATA%\JetBrains\IntelliJIdea%instance-version%\coverage
~/Library/Caches/JetBrains/IntelliJIdea%instance-version%/coverage
~/.cache/JetBrains/IntelliJIdea%instance-version%/coverage
IntelliJ IDEA では複数のカバレッジ suite の結果を同時に表示でき、表示する suite を選択できます。 複数の suite が選択されている場合、IDE ではそれらの合成結果を表示します。つまり、いずれかの suite で実行された行はカバレッジされているとみなされます。
表示するカバレッジ suite を選択
メインメニューで、 (Ctrl+Alt+F6) に移動します。
開いた 表示するカバレッジスイートの選択 ダイアログで、結果を表示したい suite を選択してください。
すべてのコードカバレッジ結果を非表示にしたい場合は、代わりに カバレッジなし をクリックしてください。 これにより、すべてのカバレッジ suite の選択が解除され、ダイアログが閉じられます。

選択対象の表示 をクリックします。
IntelliJ IDEA でコードカバレッジ結果を読み込み、 カバレッジツールウィンドウを開きます。
カバレッジ suite の追加と除去
IntelliJ IDEA 以外で生成されたファイル(例:ビルドサーバーや他の開発者による)のコードカバレッジ結果を確認したい場合は、そのファイルを別のカバレッジ suite として追加できます。 これは、 JaCoCo ( .exec または .xml )や IntelliJ IDEA runner( .ic )で生成されたファイルに適用されます。
IDE から suite を除去したり、ディスクから完全に削除することもできます。
メインメニューで、 (Ctrl+Alt+F6) に移動します。
開いた 表示するカバレッジスイートの選択 ダイアログで、ツールバーからアクションを選択してください:
外部カバレッジファイルをインポートするには、
追加 をクリックし、ファイルを閲覧してください。
IDE からカバレッジ suite を除去してディスク上には保持する場合は、suite を選択し、
除去 をクリックしてください。
IDE とディスクの両方からカバレッジ suite を削除するには、suite を選択し、
削除 をクリックしてください。
カバレッジデータを読み取る
IntelliJ IDEA は、次のカバレッジ結果を表示します:
カバレッジ ツールウィンドウ
プロジェクト ツールウィンドウ
エディター
コードカバレッジの結果は、 カバレッジを含む実行構成を少なくとも 1 つ起動すると、 カバレッジ ツールウィンドウ、 プロジェクト ツールウィンドウ、およびエディターに表示されます。
プロジェクトツールウィンドウ
プロジェクト ツールウィンドウには以下が表示されます。
ディレクトリのカバークラスと行の割合
カバーされているメソッドとクラスの行数の割合

カバレッジツールウィンドウ
レポートでは、クラス、メソッド、行、ブランチのカバレッジ率別にプロジェクトを分類します。
ブランチカバレッジは、 if-else や switch などのステートメントで実行されたブランチの割合を示します。 これは、JaCoCo ランナーと、 分岐カバレッジオプションが有効になっている IntelliJ IDEA ランナーで使用できます。

カバレッジ ツールウィンドウには次のオプションがあります。
項目 | 説明 |
|---|---|
パッケージを階層的に表示するか、構造をフラット化してすべてを同じレベルで表示するかを選択します。 | |
このオプションがオンの場合、IntelliJ IDEA は選択したアイテムをエディターで自動的に開きます。 それ以外の場合は、項目をダブルクリックして開く必要があります。 | |
このオプションがオンの場合、IntelliJ IDEA は、エディターで開いたファイルをツールウィンドウで自動的に検索します。 | |
コードカバレッジレポートを生成し、指定したディレクトリに保存します。 詳細については、 カバレッジレポートの生成 を参照してください。 | |
ディスクからカバレッジスイートをインポートします。 | |
カバレッジ結果をフィルタリングします。 以下のフィルターを設定できます。
|
エディター
エディターでは、個々のコード行のカバレッジステータスが表示されます。 ステータスはガターに色分けされたマーカーで示されます:
緑(
):コード行が実行されました。黄(
):コード行が部分的に実行されました。 これは、コード行に条件付きロジック(if/elseステートメントやループ、switchステートメントなど)が含まれていて、一部のブランチしか実行されなかった場合に発生します。赤(
):コード行は実行されませんでした。
特定の行のカバレッジ統計を表示するポップアップを開くには、ガター内のカバレッジマーカーをクリックしてください。 使用したカバレッジ runner に応じて、ポップアップには異なる情報が表示されます:

IntelliJ IDEA runner の場合、ポップアップには次の情報が表示されます:
ヒット数 :コード行が実行された回数。
行に条件付きロジック(
if/elseステートメント、三項演算子またはループなど)が含まれている場合:真のヒット数 :条件が真になった回数。
偽のヒット数 :条件が偽になった回数。
行に
switchステートメントが含まれている場合:case <値> :特定の case が実行された回数。

JaCoCo runner の場合、ポップアップには次の情報が表示されます:
完全にカバー済み :コード行が実行されました。条件付きロジックを含む場合は、すべてのブランチが実行されました。 条件付きロジックを含む場合、すべてのブランチが実行されました。
一部のみ実行済み :コード行は実行されたものの、条件付きロジックの一部ブランチしか実行されませんでした。
未カバレッジ :コード行はまったく実行されませんでした。
<number>/<number> 個のブランチをカバー済み :条件付きロジックのうち、実行されたブランチ数と全体のブランチ数の比率。
さらに、ポップアップには次のアイコンが含まれます:
前の <カバレッジ ステータス>
前のカバレッジマーカーに移動し、その統計を開きます。
次の <カバレッジ ステータス>
次のカバレッジマーカーに移動し、その統計を開きます。
テストがカバーする行を表示
そのコード行をカバーするテストを別のポップアップで表示します。
バイトコードの表示
現在のクラスのバイトコードを別のツールウィンドウで表示します。
カバレッジカラーを編集
を開き、カバレッジマーカーの色を カスタマイズします。

カバレッジを非表示
IntelliJ IDEA でカバレッジ結果の表示を停止します。
カバレッジデータを非表示にする
次のいずれかを実行します。
カバレッジ ツールウィンドウ () のカバレッジ統計のタブを閉じます。
ガター内のカバレッジハイライトをクリックし、 カバレッジを非表示 を選択します。
カバレッジレポートの生成
に移動するか、 カバレッジ ツールウィンドウで
をクリックします。
カバレッジレポートの生成 ダイアログで、生成されたレポートを保存するディレクトリを指定し、オプションで 生成した HTML をブラウザーで開く チェックボックスを選択します。
コードカバレッジを構成する
IntelliJ IDEA には、個々の実行構成に適用されるカバレッジ設定と、プロジェクトごとに適用されるカバレッジ設定があります。
実行構成の設定
実行構成ごとに、カバレッジ分析の範囲を指定できます。
クラスとパッケージを構成する
に移動し、左側のパネルの実行構成をクリックします。
オプションを変更 をクリックし、 コードカバレッジ で次のオプションを選択します。
クラスとパッケージを指定する: カバレッジ情報を表示するクラスとパッケージを構成するには、このオプションを選択します。
クラスとパッケージを除外する: このオプションを選択して、カバレッジから除外するクラスとパッケージを構成します。
プロジェクト設定
プロジェクトの場合、次のオプションを設定できます。
カバレッジをエディターに適用する前にオプションを表示する | カバレッジ分析を実行するたびに、最近収集された カバレッジスイートをアクティブにするかどうかを確認します。 この場合、ダイアログが表示され、新しい結果のみを表示するか、既存の結果に追加するか、表示せずにストレージに保存するかを選択できます。 |
収集されたカバレッジを適用しない | カバレッジ分析を実行した後は、最近収集した カバレッジスイートのみをストレージに保存してください。 この場合、 で対応するスイートを明示的に選択しない限り、新しいカバレッジデータは表示されません。 |
アクティブな suite を新しいものに置き換える | 現在表示されている カバレッジスイートを非表示にして、カバレッジ分析を実行した後に新しく収集されたスイートを使用します。 この場合、最新のカバレッジ実行の結果のみが表示されます。 |
アクティブな suite に追加する | カバレッジ分析を実行した後、新しく収集された カバレッジスイートをアクティブスイートのリストに追加します。 これにより、既存のカバレッジ結果が保持され、その上に新しい結果が追加されます。 |
カバレッジ表示を有効にする | カバレッジ分析を実行するたびに カバレッジツールウィンドウを開きます。 |
カバレッジランナーの選択 | カバレッジランナーを選択: %instance% または JaCoCo |
分岐カバレッジ JaCoCoでは常に有効 |
|
テストカバレッジごとに追跡する IntelliJ IDEA ランナー専用 | 行が実行された特定のテストまでさかのぼってトレースできます。 詳細については、 テストごとのカバレッジ を参照してください。 |
テストフォルダー内のカバレッジを収集 IntelliJ IDEA ランナー専用 | テストのコードカバレッジ統計を収集します。 デフォルトでは、カバレッジデータにはソースルートでカバーされた行のみが表示されます。 このオプションを使用すると、テストルートでもカバレッジ収集が有効になります。 |
暗黙的に宣言されたデフォルトコンストラクターを無視する IntelliJ IDEA ランナー専用 | 暗黙のデフォルトコンストラクターをカバレッジ統計から除外します。 明示的に宣言された引数なしのコンストラクターは含まれたままになります。 |
アノテーションを除外 IntelliJ IDEA ランナー専用 | 指定されたアノテーションでマークされた要素 (例: Lombok の |
カバレッジのハイライトの色を変更する
Ctrl+Alt+S を押して設定を開き、 を選択します。
コンポーネントのリストで、 カバレッジ行 ノードを展開し、カバレッジのタイプを選択します(例: 全部、 一部 または 未カバレッジ)。
フォアグラウンド フィールドをクリックして、 色を選択する ダイアログを開きます。
色を選択し、変更を適用して、ダイアログを閉じます。

テストごとのカバレッジ
ブランチカバレッジが有効になっている場合、IntelliJ IDEA では、各テストでカバーされているコード行を追跡したり、その逆を行ったりすることができます。
テストごとのカバレッジを有効にする
で、 分岐カバレッジ と テストカバレッジごとに追跡する を有効にします。
ラインごとにテストを追跡する
特定の行をカバーするテストに移動するには:
エディターのガターでハイライトされているカバレッジをクリックし、
テストがカバーする行を表示 を選択します。

テストごとのトラックライン
特定のテスト内でカバーされている行のみをハイライトするには:
カバー ツールウィンドウでテストを選択し、ツールバーの テストごとにカバレッジを表示 をクリックします。



