繁体   English   中英

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

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

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

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

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

最后我发现它被归结为“test”被添加到类名的末尾。 将单词Test移动到类名的前面,或者将它们全部省略,可以解决问题。

在我使用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设置中抛出异常! 所以没有执行任何测试,一切都完成了。

我花了几次尝试来解决这个问题,但最终还是因为错过了启用kotlin所需的gradle更改。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM