使用AndroidJUnitRunner 1.0.0和AssertJ检测测试失败

时间:2017-07-30 17:24:29

标签: android android-support-library android-testing assertj

我正在尝试将我的项目更新为最近发布的Android测试支持库版本 1.0.0 。但是,如果我添加assertj-core依赖关系Gradle已检测的测试任务开始失败并显示“未找到测试”消息。我可以成功地从IDE运行个别测试。

很容易重现这个问题:

  1. 从Android Studio 3创建具有空活动的新项目。
  2. 添加assertj-core依赖项。
  3. 从命令行./gradlew connectedDebugAndroidTest运行检测测试。
  4. Gradle脚本。

    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"
    }
    

    控制台输出。

    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).
    

    如果将com.android.support.test:runner降级到之前版本 0.5 ,则测试成功运行。

1 个答案:

答案 0 :(得分:0)

我的测试用例未被提取,除非其中至少有一个名称以test开头。

我创建了一个虚拟忽略的测试用例:

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