Android Studio -Kotlin测试投掷 - 找不到类 - 空测试套件



尝试运行在Android Studio上Kotlin编写的浓缩咖啡测试(至3.2金丝雀9(时,我会遇到错误:使用出口代码1完成过程1找不到类:" com.myproject.directoryofwinning.verifyappisawesometest"空测试套件。

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

试图重置配置并由其他人建议,但这似乎没有任何区别。

最后,我发现它降低到"测试"被添加到className的末尾。将单词测试单词移至className的正面,或者将其全部省略为解决问题。

我花了几次尝试来解决这个问题,但最终由于缺少启用Kotlin所需的Gradle更改。

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

在我的情况下,使用Android Studio 3.1.1,我的运行/调试配置不正确,这可能是由于更新Android Studio时配置的自动转换所致。我的仪器测试配置最终被放置在" Android Junit"配置下,而不是" Android仪器测试"。为我的特定类创建新的仪器测试配置。

另外,当在模块的"运行所有测试"选项上右键单击时创建的默认配置无法找到我的仪器测试并正确运行,从而导致

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

作为默认配置创建的Android Junit下方弹出。但是,右键单击包含我的仪器测试的包装,可以在正确的类别中创建它。我也可以手动编辑"全部在模块中",并且仍然正确执行Kotlin测试。

顺便说一句,我还为我提供了以下误导性输出:

$ 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设置中抛出了一个例外!因此,没有执行任何测试,并且一切都琐碎完成。

重建项目,文件>无效的缓存/retart ...,删除app build文件夹,从进程中杀死 adb,重新启动模拟器。

最新更新