はじめに
コンフィギュレーションを実行する際に JUnit テストまたは Java アプリケーションのカバレッジ情報を収集するよう Eclipse を設定できます。このセクションでは、JUnit テストのカバレッジ収集を有効化する方法を説明します。Java アプリケーションのカバレッジ収集については、「Eclipse での Java アプリケーションのカバレッジ収集」を参照してください。
単体テスト実行時のカバレッジ収集
専用の Jtest コンフィギュレーションを実行することで、JUnit テストのカバレッジ情報を収集できます。パッケージ エクスプローラーでテストまたはパッケージを右クリックし、[Jtest As] > [JUnit テスト] をクリックします。
または、IDE のメイン メニューまたは、[[テストコンフィギュレーション名]の実行] ツールバー ボタンのドロップダウン メニュー で [実行] > [Jtest As] > [JUnit テスト] をクリックします。
カバレッジ ビューにカバレッジ情報が表示されるほか、エディターにも色分けされたマーカーが表示されます (「カバレッジの参照」を参照)。
カバレッジ収集のカスタマイズ
- 以下のいずれかの方法で [Jtest 構成] ダイアログを開きます。
- パッケージ エクスプローラーでテストまたはパッケージを右クリックし、Eclipse のコンテキスト メニュー [Jtest As] > [Jtest の構成...] をクリックします。
- IDE のメイン メニューで [実行] > [Jtest As] > [Jtest Configurations... ] をクリックします。
- [[ラン コンフィギュレーション名] の実行] ツールバー ボタンのドロップダウン メニュー で [Jtest As] > [Jtest 構成... ] をクリックします。 - 構成を選択し、[Jtest] タブをクリックします。
- [カバレッジの有効化] オプションをオンにし、カバレッジ収集をアクティブにします。このオプションは、デフォルトでオンになっています。
- (任意) 単体テスト アシスタントでテストを実行するには、[単体テスト アシスタントの有効化] オプションをオンにします。単体テスト アシスタントは、テスト品質の向上に役立ちます。詳細については「単体テスト アシスタントの使用」を参照してください。
- [適用] をクリックします。
カバレッジ スコープのカスタマイズ
デフォルトでは、テスト対象クラスを含むプロジェクトおよび依存先プロジェクトのカバレッジが収集され、レポートされます。スコープに含まれるプロジェクトは、Jtest タブの [対象プロジェクト] フィールドに表示されます。
カバレッジ スコープを狭くして、Eclipse のパッケージ エクスプローラーで選択したアイテムだけを含めたり、指定したクラスを除外することができます。「選択されたアイテムのカバレッジのレポート」を参照してください。
さらに、スコープにテスト クラスを含めたり、スコープから除外することができます。テストのカバレッジを収集するには、[テスト クラスのカバレッジを収集] オプションをオンにする必要があります。このオプションが無効な場合、テスト クラスのカバレッジは収集されません。このオプションは、デフォルトでオンです。
選択されたアイテムのカバレッジのレポート
IDE のパッケージ エクスプローラー ビューで選択したアイテムのカバレッジ データだけを収集するには、次の操作を行います。
- Jtest 構成ダイアログを開きます (「カバレッジ収集のカスタマイズ」の手順を参照)。
- 構成を選択し、[Jtest] タブをクリックします。
- [選択範囲のカバレッジだけをレポート] オプションをオンにします。
- [適用] をクリックします。
[対象プロジェクト] フィールドは無効化され、パッケージ エクスプローラーで選択されたアイテムのカバレッジだけがレポートされます。
インストゥルメンテーションからのクラスの除外
カバレッジ スコープに含めないクラスを指定できます。
- Jtest 構成ダイアログを開きます (「カバレッジ収集のカスタマイズ」の手順を参照)。
- 構成を選択し、[Jtest] タブをクリックします。[除外] フィールドは除外するパッケージを定義します。
- 除外するパッケージのパターンを指定するには、[新規] をクリックします。パターンを手動で入力するか、参照インターフェイスでパッケージを指定します。
- [適用] をクリックします。
除外パターンの例
手動で除外パターンを指定する場合、ワイルドカード * を使用して、指定したパッケージに直接的に含まれるすべてのクラスを除外できます。
examples/*
-examples
パッケージに直接的に含まれるすべてのクラスに一致します (例:examples.Foo
)。このパターンでは、examples.internal.Foo
クラスは除外されません。examples/Foo*
-examples パッケージのファイル名が
"Foo" で始まるすべてのクラスに一致します (例:examples.FooFile
)。examples.internal.FooFile
クラスは別のスコープに所属するため、除外されません。
カバレッジの参照
実行されたコードのカバレッジは [カバレッジ] ビューで参照できます (「カバレッジの参照」を参照)。