android studio上で、InstrumentationRegistryやAndroidJUnit4などの名前解決ができず、赤字になってしまいました。
赤字の上にマウスをのせると、
Cannot resolve symbol 'InstrumentationRegistry'
Cannot resolve symbol 'AndroidJUnit4'
と、吹き出し表示されます。
このアプリの全てのandroidTestクラスでこのような状態です。
だめもとで、androidTestを実行したり、テストクラスを指定して実行したりしましたが、Runメッセージ領域に、
onError: commandError=true message=INSTRUMENTATION_FAILED
が表示されて、テスト実行できませんでした。
ところが、ターミナルで、./gradlew app:connectedAndroidTest を実行すると、問題なくテスト実行し、テスト結果のhtmlも作成されました。
なお、app/build.gradle の dependenciesで、androidx.test:runner他は、すでに指定済みです。
dependencies {
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test:rules:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
Code language: JavaScript (javascript)
行き詰まってしまいました。
そこで、プロジェクトを新規作成し、問題のbuild.gradleから、1行づつコピーしながら、どこで、InstrumentationRegistry が赤字になるかを調べました。
原因は、testBuildTypeでした。
android {
testBuildType "xxxx"
Code language: JavaScript (javascript)
app/build.gradleのbuildConfigを編集して、xxxx と debug の内容を同じにしてみましたが、解決できません。
あきらめて、testBuildTypeを削除しました。InstrumentationRegistryが黒字表示になり、androidTestも実行できました。