Android-JUnit5 No instrumentation registered! when getting context

Viewed 179

I know this is "common" error but I am trying to make a JUnit5 Android Room test working.

I found out that JUnit5 does not support the instrumentation test (or google does not support JUnit 5 I should say) but I discovered that https://github.com/mannodermaus/android-junit5 is supposed to help me.

I modified my graddle to have the plugin added in my module and the classpath at the top of the project.

classpath("de.mannodermaus.gradle.plugins:android-junit5:1.7.1.1")

id("kotlin-android")

I also added the specific dependencies from it

androidTestImplementation("de.mannodermaus.junit5:android-test-core:1.2.2")
androidTestRuntimeOnly("de.mannodermaus.junit5:android-test-runner:1.2.2")

And in the android defaultConfig of my module I added

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
testInstrumentationRunnerArgument("runnerBuilder", "de.mannodermaus.junit5.AndroidJUnit5Builder")

The graddle builds fine but the issue is when I run my simple test

class DbTest
{
private lateinit var myDao : MyDao

@BeforeEach
fun init()
{
    val context : Context = ApplicationProvider.getApplicationContext();
    val db = Room.inMemoryDatabaseBuilder(
        context,
        ConfigDatabase::class.java).build()

    tcdDao = db.getMyDao()
}

[...]
}

The error occurs when I get the context :

No instrumentation registered! Must run under a registering instrumentation.

I want to specify that I cannot use JUnit4.

Am I missing something ? Can I actually test my database with JUnit5 ? Or should I use another solution ?

0 Answers
Related