Android Studio 3.0.1中Kotlin Instrumentation Tests运行异常求助
Kotlin Instrumented Tests在Android Studio 3.0.1中被误识别的问题解决方案
先跟你同步下我理解的问题:你在Android Studio 3.0.1用Kotlin编写Instrumentation Tests时,遇到了两个头疼的状况——一是IDE把仪器化测试当成普通本地单元测试运行,既不启动模拟器也不部署APK到设备;二是报错提示Class not found: "com.site.application.discover.DiscoverActivityTest" Empty test suite。手动创建「Android Instrumented Tests」配置能正常执行,但单独运行单个测试方法或类时,IDE会自动生成类型为「Unknown」的配置,直接触发上述错误。最后你通过重装Android Studio解决了问题,推测是IDE配置异常导致的对吧?
我整理了几个无需重装IDE的解决方案,下次遇到类似问题可以优先尝试:
1. 先确认Gradle配置无遗漏
虽然你的Gradle配置看起来已经符合规范,但还是可以再核对以下几点:
- 确保
defaultConfig中正确指定了测试运行器:testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" - 检查仪器化测试的依赖使用的是
androidTestImplementation,而非本地单元测试的testImplementation,比如Espresso的依赖配置:androidTestImplementation "com.android.support.test.espresso:espresso-core:$rootProject.ext.espressoVersion" - 点击工具栏的「Sync Project with Gradle Files」按钮,让配置完全同步生效
2. 修复IDE的测试配置识别异常
方法一:重置默认测试配置
- 打开「Run → Edit Configurations」窗口
- 删除所有类型为「Unknown」的测试配置
- 展开窗口左上角的「Defaults」,找到「Android Instrumented Tests」,检查默认设置:
- 「Module」需选择对应的app模块
- 「Test instrumentation runner」设置为
android.support.test.runner.AndroidJUnitRunner
- 保存配置后重启Android Studio,再尝试运行测试
方法二:清除IDE缓存
IDE缓存损坏是这类配置问题的常见诱因,操作步骤如下:
- 关闭Android Studio
- 找到对应系统的缓存目录:
- Windows:
C:\Users\<你的用户名>\.AndroidStudio3.0\system\caches - Mac:
~/Library/Caches/AndroidStudio3.0 - Linux:
~/.AndroidStudio3.0/system/caches
- Windows:
- 删除该目录下的所有文件
- 重新启动IDE,等待索引重建完成后再运行测试
方法三:重新标记测试目录
有时候IDE会误判测试目录的类型,重新标记即可:
- 在Project视图中找到
src/androidTest目录 - 右键点击目录 → 选择「Mark Directory as」 → 「Instrumented Test Sources Root」
- 再次执行Gradle同步操作,然后尝试运行测试
3. 用命令行验证测试本身的有效性
如果IDE仍存在异常,可先通过命令行运行测试,确认测试代码本身无问题:
- 打开终端,进入项目根目录
- 执行对应系统的命令:
# Mac/Linux系统 ./gradlew connectedAndroidTest # Windows系统 gradlew.bat connectedAndroidTest - 如果命令行能正常运行测试,说明问题确实出在IDE配置上,再回头尝试上述修复方法
总结
遇到IDE对Kotlin Instrumented Tests的识别异常时,无需急着重装IDE,优先尝试清除缓存、重置配置、重新标记测试目录这些轻量修复方法,大部分情况都能解决问题。若这些方法均无效,再考虑重装Android Studio来彻底修复配置异常。
内容的提问来源于stack exchange,提问作者roostaamir
相关产品推荐
相关产品推荐

