Android Support LibraryにJUnit4が取り込まれたことを最近知り、その導入に向けて試行錯誤したことをここにメモしておきます。
同じ問題にハマっている人の参考になれば幸いです。
参考
導入方法:続・AndroidでJUnit4を使う方法(Android SDKで正式サポートされました!)
ビルドタイプがdebugでしかテストされないが、releaseでテストしたい!
以下を追加すると、releaseでテストできるようになります。
android {
// ...
testBuildType "release"
// ...
}
カバレッジ測定をしたい!
以下を追加すると、カバレッジ測定が有効になります。
android {
// ...
buildTypes {
debug {
testCoverageEnabled true
}
}
// ...
}
カバレッジ測定が有効になると、create${Flavor}${BuildType}CoverageReport
というタスクがGradleに追加されるので、これを実行するとHTMLのレポートがbuild/outputs/reports/coverage/${Flavor}/${BuildType}
以下に生成されます。
カバレッジ測定でRから始まるクラスが除外されている!
Android Gradle Plugin 1.0.0のバグです。1.1より修正されており、2015/02/03時点でベータ版までこぎつけているのでもう暫く待ちましょう。
もしどうしてもすぐに直したい人は、Android StudioをBetaやDevチャネルなどに設定してベータ版にアップデートし、ルートにあるbuild.gradle
のcom.android.tools.build:gradle:1.0.0
をom.android.tools.build:gradle:1.1.0-+`に書き換えると直ります。
なお、1.1から従来のテストAndroid Instrumentation Tests
とは別にUnit Tests
というテストアーティファクトが追加されています。ビルドバリアントの設定などが追加されていますが、詳しい使い方は不明です。