You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin Android项目Instrumentation Tests运行异常:编辑器启动无测试发现

解决Kotlin Android项目Ubuntu下Instrumented Tests编辑器启动提示“No tests found”的问题

看起来你遇到的是Ubuntu环境下Android Studio对Kotlin Instrumented Tests的识别偏差问题——确实,旧版本的Kotlin插件和Gradle在跨系统时容易出现这类测试分类错误,尤其是编辑器的运行配置会误把Instrumented Tests当成本地Unit Tests执行。下面是几个针对性的解决方案,按顺序尝试应该能解决问题:

  • 确认测试目录的IDE标记
    首先检查你的Instrumented Tests是否放在src/androidTest/kotlin目录下,然后右键这个目录,选择Mark Directory as -> Android Instrumentation Test Sources Root。Ubuntu下的Android Studio有时候对Kotlin目录的类型识别会滞后,手动标记能强制IDE识别这是Instrumented测试目录,而非普通Unit Test目录。

  • 修正运行配置类型
    当你点击编辑器的绿色箭头启动测试时,IDE可能自动创建了错误的运行配置。你可以通过Run -> Edit Configurations打开配置窗口:

    1. 检查配置的“Test kind”是否为Android Instrumented Tests,如果是JUnit就说明被当成了本地单元测试;
    2. 修改配置类型为Android Instrumented Tests,并指定正确的模块和目标设备;
    3. 保存配置后重新运行测试。
  • 升级Kotlin插件和Gradle版本
    你当前使用的Kotlin 1.2.21和Gradle 3.0.1都是比较老旧的版本,这些版本在Ubuntu系统上的兼容性问题较多。建议升级到稳定的新版本:

    • Kotlin插件升级到1.8.x或更高(直接在Android Studio插件市场更新);
    • Gradle升级到7.x或8.x(注意匹配对应的Android Gradle Plugin版本,比如Gradle 7.4对应AGP 7.2.0);
      新版本的工具链修复了很多跨系统的测试识别问题,能从根源减少这类错误。
  • 显式指定测试运行器
    在你的Instrumented测试类上添加@RunWith(AndroidJUnit4::class)注解,强制IDE识别这是Android Instrumented测试,避免被误判为普通JUnit测试:

    import androidx.test.runner.AndroidJUnit4
    import org.junit.runner.RunWith
    
    @RunWith(AndroidJUnit4::class)
    class MySampleInstrumentedTest {
        // 你的测试代码
    }
    

    如果你还在使用旧的Support库,把androidx.test.runner.AndroidJUnit4换成com.android.support.test.runner.AndroidJUnit4即可。

  • 清理IDE缓存并重建项目
    Ubuntu下的Android Studio缓存偶尔会出现异常,导致测试识别错误。执行File -> Invalidate Caches...,选择Invalidate and Restart,重启后再执行Build -> Rebuild Project,彻底清理缓存并重新构建项目,很多时候能解决这类奇怪的识别问题。

  • 检查Gradle脚本配置
    确保Module级的build.gradle文件里正确配置了Instrumented测试的依赖和运行器:

    android {
        defaultConfig {
            // AndroidX环境下的配置
            testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
            // Support库环境下的配置
            // testInstrumentationRunner "com.android.support.test.runner.AndroidJUnitRunner"
        }
    }
    
    dependencies {
        // AndroidX依赖示例
        androidTestImplementation 'androidx.test.ext:junit:1.1.5'
        androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
        // Support库依赖示例
        // androidTestImplementation 'com.android.support.test:runner:1.0.2'
        // androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    }
    

    错误的依赖配置也会导致IDE无法正确识别测试类型。

内容的提问来源于stack exchange,提问作者DefaultXYZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:10:31