I'm working on app with Hilt and trying to make some instrumentation tests on it.
But my tests are crashing with:
java.lang.IllegalStateException: Hilt test, x.B, cannot use a @HiltAndroidApp application but found <...MyApplication>. To fix, configure the test to use HiltTestApplication or a custom Hilt test application generated with @CustomTestApplication.
Even tho I've made custom Runner : AndroidJUnitRunner
that seems to be called properly since both logs are shown in logcat. But the super.newApplication
call allways returns my main Application instead of HiltTestApplication
package x
// ...
class Runner : AndroidJUnitRunner() {
override fun newApplication(
cl: ClassLoader?,
className: String?,
context: Context?
): Application {
Log.e("log", "HETTT")
val app = super.newApplication(
cl, HiltTestApplication::class.java.name, context
)
Log.e("log", "App made - ${app.javaClass.name}")
return app
}
}
and used it in gradle
android {
defaultConfig {
testInstrumentationRunner "x.Runner"
}
}
Hilt gradle plugin, testing lib and compiler are set to '2.43.2'
and JUnit runner is set to '1.4.0'
Can you think of something I might be doing wrong? Is there any way other plugins/libs can interfere with my configuration?