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

Android Studio运行带覆盖率单元测试提示No coverage for unit test如何解决

核心原因

buildTypes中配置的isTestCoverageEnabled = true仅对androidTest目录下的仪器化测试生效,对test目录下的本地JVM单元测试不生效。你当前缺少本地单元测试的覆盖率采集配置,因此两种覆盖率运行器都无法识别有效数据。

修复方案

若你的SimpleTest存放在test目录(本地JVM单元测试)

需额外配置Jacoco插件适配本地测试覆盖率采集:

  1. 在模块级build.gradle.kts头部引入Jacoco插件:
plugins {
    id("com.android.application")
    id("kotlin-android")
    id("jacoco") // 新增Jacoco插件声明
}
  1. 在android配置块外添加Jacoco测试任务配置:
tasks.withType<Test> {
    configure<JacocoTaskExtension> {
        isIncludeNoLocationClasses = true
        excludes = listOf("jdk.internal.*")
    }
}

// 可选:指定兼容AGP 7.0+的Jacoco版本,规避Arctic Fox版本兼容性问题
jacoco {
    toolVersion = "0.8.7"
}
  1. 同步Gradle配置后重新执行带覆盖率的测试即可。

若你的SimpleTest存放在androidTest目录(仪器化测试)

按以下顺序排查:

  • 确认运行测试时选择的构建变体为debug,仅开启了isTestCoverageEnabled的构建变体支持覆盖率采集
  • 检查测试运行配置的覆盖范围包含SimpleClass所在的包路径,排除路径过滤规则导致的类无法识别问题
  • 确认SimpleTest类上已添加@RunWith(JUnit4::class)注解,缺失该注解会导致测试逻辑识别异常,影响覆盖率采集

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 07:06:02