概要
Androidのモバイルアプリ開発において、CD/CIの設定などで ./gradlew test コマンドによるユニットテストを実行したい時がありました。しかし、Firebaseのエラーが起きてテストを実行できませんでした。
エラー内容は
Execution failed for task ':app:processDebugLocalGoogleServices'.
バリアントを複数設定しているときにパッケージ名をうまく探せないようで起きてしまうようです。
解決策
環境を指定してテストを実行すると直りました。
./gradlew testDebugUnitTest
debugの箇所は設定しているビルドバリアントです。
例えば stage バリアントがあるのならば次のようでも良いです。
./gradlew testStageUnitTest
<参考>
NGな解決策
次で紹介されているappレベルのgradleから
gradle
apply plugin: 'com.google.gms.google-services'
を消す方法でもテストは動くようになるのですが、これはNGです。理由は明白で、Firebaseの公式で設定時に追加するように明記されているためです。消さないようにしましょう....