[Android] build.gradle.ktsでJaCoCoを動かす
目次
AndroidのGradleの設定ファイルを .kts
に書き換えた時、JaCoCoをセットアップする方法がわからなかったので頑張って動かしてみました。GradleとJaCoCoについてはよくわかっていないことが多いです。
動いている状態のプロジェクトを以下にpushしてあります。
JaCoCoのセットアップのために、Android用のプラグインを作ってくれている方がいたので、利用させていただきました。とても助かりました。ありがとうございます。
プロジェクトのsettings.gradle.kts
Maven Repositoryを追加します。プロジェクトによっては、プロジェクトの build.gradle.kts
に追加する場合もあると思います。
dependencyResolutionManagement {
// 略
repositories {
// 略
maven(url = "https://plugins.gradle.org/m2/")
}
}
プロジェクトのbuild.gradle.kts
プラグインをdependenciesに追加します。
buildscript {
dependencies {
// 追加
classpath("com.dicedmelon.gradle:jacoco-android:0.1.5")
}
}
plugins {
// 略
}
モジュールのbuild.gradle.kts
プラグインを適用し、JaCoCoのバージョン、出力するカバレッジレポートの種別、カバレッジレポートの有効化を行います。
plugins {
// 略
id("com.dicedmelon.gradle.jacoco-android")
}
jacoco {
toolVersion = "0.8.8"
}
tasks.withType<JacocoReport> {
reports {
csv.required.set(false)
html.required.set(true)
xml.required.set(true)
}
}
android {
// 略
buildTypes {
debug {
enableUnitTestCoverage = true
}
// 略
}
// 略
}
dependencies {
// 略
}
カバレッジレポートの出力
ユニットテスト実行後、コマンドを実行します。jacoco~
のコマンドは、プラグインが作ってくれるタスクです。
$ ./gradlew testDebugUnitTest
$ ./gradlew jacocoDebugUnitTest
app
モジュールの場合は、app/build/jacoco/
にカバレッジレポートが出力されます。
TODO
カバレッジレポートのマージ
JaCoCoのカバレッジレポートをマージする方法があったような気がするのですが、できませんでした。
JaCoCoの設定の共通化
今の書き方だと各モジュールで同じ設定を書かないといけません。以下の記事でやっているように、JaCoCoの設定をモジュールの build.gradle.kts
から切り出したかったのですが、できませんでした。
References
書いている人 😎

茨城県つくば市在住のモバイルアプリケーションアーキテクト(Androidが得意です)。モバイルアプリのアーキテクチャ、自動テスト、CI/CDに興味があります。いわゆる「レガシーコード」のリファクタリング・リアーキテクチャが好きです。
👉 もっと詳しく
著書 ✍
Android クリーンアーキテクチャ ヒッチハイク・ガイド 🧳
Androidアプリでのクリーンアーキテクチャに入門するためのガイダンスです。クリーンアーキテクチャの概念を理解し、Androidアプリに適用する方法を解説しています。
Android ユニットテスト ヒッチハイク・ガイド 🧳
Androidアプリのユニットテストに入門するためのガイダンスです。初学者が混乱せずにAndroidアプリのユニットテストを書き始めることができる、ということを目的としています。
Android MVVMアーキテクチャ入門 🛠
Androidアプリ開発の初学者に向けた、MVVM(Model-View-ViewModel)アーキテクチャの入門書を書きました。初学者の方を確実にネクストレベルに引き上げる技術書です。NextPublishingより出版されています。
関連記事 👀
- [Android] EventBusの思い出🚌
- [Android] Clean Architecture の理論と実装
- Mockk によるモック入門
- Truth によるアサーション入門
- 「Android ユニットテスト ヒッチハイク・ガイド」を頒布します