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 レポートのランディング ページには、すべてのモジュールの概要が表示されます。モジュールからパッケージ、パッケージからクラス、クラスからソースファイルへとドリルダウンできます。ファイルをクリックすると、行とブランチのカバレッジがハイライト表示されたコードが表示されます。
- 緑: カバーされている行。
- 赤: 実行されなかった行。
- 黄色: 部分的なカバレッジ(一部の命令または分岐が欠落)。