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"
....
}
当尝试 运行 在 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"
....
}