Instrumented tests failure with AndroidJUnitRunner 1.0.0 and AssertJ
Asked Answered
A

1

11

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.

Avent answered 30/7, 2017 at 17:24 Comment(3)
Have you tried compiling with assertj-core version 3.8.0?Ce
@Ce with assertj 3.8 build fails with com.android.dx.cf.code.SimException: default or static interface method used without --min-sdk-version >= 24. I guess 3.x branch requires Java 8 features unsupported by android platform. I am targeting min API 15 btw.Avent
try org.junit.Assert, org.junit.Test, org.junit.runner.RunWith ...and @RunWith(AndroidJUnit4.class).Cammi
S
0

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)
}
Seasonseasonable answered 16/4, 2018 at 2:36 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.