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

时间:2018-04-04 16:29:41

标签: android android-studio kotlin android-espresso

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

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

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

4 个答案:

答案 0 :(得分:3)

最后我发现它已经下降到"测试"被添加到类名的末尾。将单词Test移动到类名的前面,或者将它们全部省略,可以解决问题。

答案 1 :(得分:3)

在我使用Android Studio 3.1.1的情况下,我的运行/调试配置不正确,可能是因为在更新Android Studio时自动转换了配置。 我的检测测试配置最终被置于“Android JUnit”配置下,而不是“Android Instrumented 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设置中抛出异常!所以没有执行任何测试,一切都是完成的。

答案 2 :(得分:2)

我花了几次尝试才能弄清楚这一点,但最终是由于缺少启用kotlin所需的gradle更改。

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

答案 3 :(得分:1)

重建项目,文件&gt;使Caches / Retart无效...,删除app \ build文件夹,从进程中终止adb,重新启动模拟器。