Home » Android » android – Instrumented tests failure with AndroidJUnitRunner 1.0.0 and AssertJ

android – Instrumented tests failure with AndroidJUnitRunner 1.0.0 and AssertJ

Posted by: admin May 14, 2020 Leave a comment

Questions:

I’m trying to update my project to recently released Android Test Support library version 1.0.0. But if I add assertj-core dependency Gradle instrumented test tasks start to fail with “No tests found” message. I can successfully run individual tests from IDE though.

It is easy to reproduce the problem:

  1. Create new project from Android Studio 3 with empty activity.
  2. Add assertj-core dependency.
  3. Run instrumentation tests from command line ./gradlew connectedDebugAndroidTest.

Gradle script.

android {
    defaultConfig {
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
}

dependencies {
    implementation 'com.android.support:appcompat-v7:26.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.0'
    androidTestImplementation group: "org.assertj", name: "assertj-core", version: "2.8.0"
}

Console output.

com.android.builder.testing.ConnectedDevice > No tests found.
[Nexus_4_API_25(AVD) - 7.1.1] FAILED 
No tests found. This usually means that your test classes are not in the form that your test runner expects (e.g. don't inherit from TestCase or lack @Test annotations).

Tests successfully run if downgrade com.android.support.test:runner to previous version 0.5.

How to&Answers:

My test cases were not picked up unless the name at least one of them started with test.

I created a dummy ignored test case:

@Test
fun testDummy() {
    Assume.assumeTrue(false)
}