コード カバレッジ レポートを表示する

Android Gradle プラグインは、テストでカバーされているコードの割合を追跡するコード カバレッジ レポートを作成できます。このページでは、カバレッジ レポートを有効にしてレポートを生成する方法について説明します。

各バリアントのテストタイプ(単体テストとインストルメンテーション)ごとにカバレッジ レポートを生成できます。また、さまざまなテストタイプ、モジュール、ビルド バリアントにわたって統合されたカバレッジ レポートを生成することもできます。

コード カバレッジを有効にする

コード カバレッジを有効にするには、カバレッジ レポートを取得する各バリアントのモジュール レベルのビルドファイルで enableAndroidTestCoverageenableUnitTestCoveragetrue に設定する必要があります。

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

統合コード カバレッジ レポートを生成する

createCoverageReportcreateAggregatedCoverageReport の 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 レポートのランディング ページには、すべてのモジュールの概要が表示されます。モジュールからパッケージ、パッケージからクラス、クラスからソースファイルにドリルダウンできます。 任意のファイルをクリックすると、行とブランチのカバレッジがハイライト表示されたコードが表示されます。

  • 緑色: カバーされている行。
  • 赤色: カバーされていない行。
  • 黄色: 部分的なカバレッジ(一部の命令またはブランチが欠落している)。