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

升级至Android 12后Espresso测试无执行用例,0测试通过如何解决?

解决方案

该问题是Android 12(API 31)对instrumentation测试运行机制调整、以及旧版本测试依赖的兼容缺陷共同导致的,可按照以下步骤排查解决:

  • 第一步:升级测试相关依赖到适配API 31的兼容版本
    你当前使用的androidx.test:runner:1.4.0、espresso-core:3.4.0存在已知的API 31兼容bug,将测试依赖升级至以下版本即可修复大部分兼容问题:
junit:junit:4.13.2
androidx.test.ext:junit-ktx:1.1.5
androidx.test:runner:1.5.2
androidx.test:rules:1.5.0
androidx.test.uiautomator:uiautomator:2.3.0
androidx.test.espresso:espresso-core:3.5.1
androidx.work:work-testing:2.8.1
  • 第二步:调整AndroidManifest.xml配置
    API 31要求所有配置了intent-filter的组件必须显式声明android:exported属性,若你测试用例中需要唤起的Activity、Service、BroadcastReceiver未配置该属性,会导致测试框架无法拉起对应组件,测试用例不会被执行。
    同时可在测试用的manifest配置中,给instrumentation标签添加适配属性:
<instrumentation
    android:name="androidx.test.runner.AndroidJUnitRunner"
    android:targetPackage="你的应用包名"
    android:functionalTest="true"/>
  • 第三步:校验build.gradle测试配置
    在模块级build.gradle的android.defaultConfig块中,确认测试运行器配置正确,添加测试参数适配API 31:
defaultConfig {
    // 其余原有配置保留
    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    testInstrumentationRunnerArguments clearPackageData: 'true'
}
  • 第四步:清理缓存重跑测试
    完成上述配置后依次执行:
  1. 点击Android Studio File -> Invalidate Caches... 清理IDE缓存
  2. 执行./gradlew clean清理项目构建缓存
  3. 卸载测试设备上已安装的原应用和测试安装包,重新运行测试即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:06:08