Android Studio - Kotlin 测试投掷 - Class 未找到 - 空测试套件

Android Studio - Kotlin Tests Throwing - Class not found - Empty test suite

当尝试 运行 在 Android Studio 上用 Kotlin 编写的 espresso 测试时(直到 3.2 Canary 9),我收到错误: 进程结束,退出代码为 1 Class 未找到:"com.myproject.directoryofwinning.VerifyAppIsAwesomeTest"空测试套件。

奇怪的是,同一个项目中的 Java 个测试没有问题。

已尝试重置配置和其他人的建议,但这似乎没有任何区别。

最后发现是在类名末尾加了"test"。将单词 Test 移到类名的前面,或者将其全部省略都可以解决问题。

在我使用 Android Studio 3.1.1 的情况下,我的 Run/Debug 配置不正确,可能是由于更新 Android Studio 时配置自动转换所致。 我的仪器测试配置最终被放置在 "Android JUnit" 配置下,而不是 "Android Instrumented Tests"。 为我的特定 class 创建一个新的仪器测试配置有效。

此外,右键单击我模块的 "Run All Tests" 选项时创建的默认配置无法正确找到我的插桩测试和 运行,导致

0 test classes found in package '<default package>' 
Process finished with exit code 254 
Empty test suite.

作为在 Android JUnit 下弹出的默认配置。但是,右键单击包含我的插桩测试的包会在正确的类别中创建它。我也可以手动将其编辑为 'All in Module' 并仍然正确执行我的 kotlin 测试。

顺便说一句,我之前也有 IDE 给我以下误导性输出:

$ adb shell am instrument -w -r   -e package com.base.package.kotlintests -e debug false com.base.package.test/android.support.test.runner.AndroidJUnitRunner
Client not ready yet..
Started running tests
Tests ran to completion.
Empty test suite.

为什么它说有一个空的测试套件为什么我明明有测试?查看日志或 运行 在终端上执行 adb 命令显示我的代码在我的 @BeforeClass 设置中抛出异常!所以没有执行任何测试,一切都平平淡淡地完成了。

重建项目,文件 > 使缓存无效/重启...,删除 app\build 文件夹,从进程中终止 adb,重启模拟器。

我试了几次才弄明白,但最终是因为缺少启用 kotlin 所需的 gradle 更改。

....
apply plugin: 'kotlin-android'
android {
    ....
}
dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib:1.3.21"
    ....
}