概要
Espresso テストの BuildType を release に変えたらエラーになってしまったので、debug 以外で実行できる方法を調べた。
前提
Android Studio 3.1.4
Esporesso 3.0.2
BuildType : debug / release の2種類が存在
経緯
今さらながら既存のAndroidプロジェクトにEspressoを導入しようとしたが、
プロジェクトの都合上 BuildType
が debug
ではなく release
の方で動かしたかった。
debug
の状態で問題なくテストが動いていることを確認したあと BuildType
を release
に変更したら、見事にテストクラスが真っ赤っかに。
対応内容
テストはデフォルトで debug
に対して実行されるらしく、それ以外のビルドタイプで実行するには下記設定が必要とのこと。
引用元:https://developer.android.com/studio/build/gradle-tips?hl=ja
テストするビルドタイプの変更
デフォルトでは、すべてのテストは、デバッグ ビルドタイプに対して実行されます。対象を別>のビルドタイプに変更するには、モジュール レベルの build.gradle ファイル内で >testBuildType プロパティを使用します。たとえば、"staging" ビルドタイプに対してテ>ストを実行する場合は、次のスニペットのようにファイルを編集します。
ということなので、ここを release で設定してやるとエラーが全て消えて release でも実行ができるようになりました。
android {
...
testBuildType "release"
}
注意
そもそも release でテストをするようには作られていないので、Run -> Recorder Espresso Test
のテストレコーダーも動きませんでした。
下記のように File -> Project Structure -> Modules -> release -> Build Type
で Debuggable true
にしてやれば動くようになりますが、これは正しい使い方ではないので別のビルドタイプを用意するなどの必要がありそうです。