Android Gradle プラグインは、テストでカバーされているコードの割合を追跡するコード カバレッジ レポートを作成できます。このページでは、カバレッジ レポートを有効にしてレポートを生成する方法について説明します。
各バリアントのテストタイプ(単体テストとインストルメンテーション)ごとにカバレッジ レポートを生成できます。また、さまざまなテストタイプ、モジュール、ビルド バリアントにわたって統合されたカバレッジ レポートを生成することもできます。
コード カバレッジを有効にする
コード カバレッジを有効にするには、カバレッジ レポートを取得する各バリアントのモジュール レベルのビルドファイルで enableAndroidTestCoverage と enableUnitTestCoverage を true に設定する必要があります。
Kotlin
android { // ... buildTypes { debug { // Enable coverage for unit tests enableUnitTestCoverage = true // Enable coverage for instrumentation tests enableAndroidTestCoverage = true } } }
Groovy
android { // ... buildTypes { debug { // Enable coverage for unit tests enableUnitTestCoverage true // Enable coverage for instrumentation tests enableAndroidTestCoverage true } } }
Jacoco のバージョンを変更する(省略可)
モジュールでカバレッジを有効にすると、AGP は Jacoco を自動的に適用します。 ただし、特定のバージョンの Jacoco を使用する必要がある場合は、モジュール レベルのビルドファイルで指定できます。
Kotlin
android { jacoco { version = "JACOCO_VERSION" } }
Groovy
android { jacoco { version = 'JACOCO_VERSION' } }
バリアント固有のカバレッジ レポートを生成する
特定のバリアントの単体テストまたはインストルメンテーション テストのみのカバレッジ レポートを生成するには、対応するタスクを実行します。
| テストタイプ | コマンド | レポートの場所 |
|---|---|---|
| 単体テスト | ./gradlew :module-name:createVariantNameUnitTestCoverageReport |
path-to-your-project/module-name/build/reports/coverage/test/variant/index.html |
| インストルメンテーション テスト | ./gradlew :module-name:createVariantNameAndroidTestCoverageReport |
path-to-your-project/module-name/build/reports/coverage/androidTest/variant/connected/index.html |
統合コード カバレッジ レポートを生成する
createCoverageReport と createAggregatedCoverageReport の Gradle タスクを使用して、統合コード カバレッジ レポートを生成できます。これらのタスクを使用すると、さまざまなテストタイプ(単体テストとインストルメンテーション)、モジュール、ビルド バリアントのカバレッジ データを統合した単一の HTML レポートを生成できます。
これにより、プロジェクトのコード カバレッジの包括的なビューを 1 つのダッシュボードで確認できます。
前提条件
- Android Gradle プラグイン 9.2.0-alpha07 以降
統合レポートを生成するには、コマンドラインから次のいずれかのタスクを実行します。
| 対象範囲スコープ | コマンド | 説明 | レポートの場所 |
|---|---|---|---|
| 現在のモジュール | ./gradlew :module-name:createCoverageReport |
現在のモジュールの統合カバレッジ レポートを生成し、すべてのテストタイプのデータをマージします。 | path-to-your-project/module-name/build/reports/code_coverage_html_report/ |
| 現在のモジュールと依存関係 | ./gradlew :module-name:createAggregatedCoverageReport |
現在のモジュールとそのすべての依存関係の統合カバレッジ レポートを生成します。このタスクは、公開が有効になっているアプリ モジュールとライブラリ モジュールで使用できます。 | path-to-your-project/module-name/build/reports/aggregated_code_coverage_html_report/ |
生成された HTML レポートのランディング ページには、すべてのモジュールの概要が表示されます。モジュールからパッケージ、パッケージからクラス、クラスからソースファイルにドリルダウンできます。 任意のファイルをクリックすると、行とブランチのカバレッジがハイライト表示されたコードが表示されます。
- 緑色: カバーされている行。
- 赤色: カバーされていない行。
- 黄色: 部分的なカバレッジ(一部の命令またはブランチが欠落している)。