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

Android Studio单元测试覆盖率全显示0%问题求助

解决Android单元测试覆盖率显示0%的隐藏设置排查

我之前也碰到过一模一样的问题!结合自己踩过的坑和社区里的经验,这几个容易遗漏的设置和常见问题你可以挨个排查:

  • 检查模块build.gradle的覆盖率配置
    确保在你的app模块(或目标测试模块)的build.gradle文件里,已经开启了测试覆盖率的支持:

    android {
        buildTypes {
            debug {
                // 开启Debug变体的覆盖率统计
                testCoverageEnabled true
            }
        }
    }
    // 如果用Kotlin,记得添加Jacoco插件
    plugins {
        id 'com.android.application'
        id 'org.jetbrains.kotlin.android'
        id 'jacoco'
    }
    

    要是没加testCoverageEnabled true,就算测试全过,也不会生成任何覆盖率数据。

  • 确认测试运行的是Debug变体
    有时候默认的Run Configuration可能指向了Release变体,而Release通常不会开启覆盖率统计。你可以右键测试文件→Edit Configurations,在General标签页里查看Build variant是否设置为Debug,改成Debug后再重新运行测试。

  • 排查Jacoco的排除规则是否出错
    如果你手动配置了Jacoco的规则,不小心把主代码全部排除的话,就会出现覆盖率0%的情况。检查build.gradle里有没有类似这样的错误配置:

    jacocoTestReport {
        afterEvaluate {
            classDirectories.setFrom(files(classDirectories.files.collect {
                fileTree(dir: it, exclude: ['**/*']) // 这种配置会把所有代码排除
            }))
        }
    }
    

    确保exclude的是测试类或者不需要统计的代码,而不是主业务代码。

  • 清理重建项目,清除缓存
    Android Studio的缓存有时候会导致覆盖率数据无法正常生成。先执行Build → Clean Project,再Build → Rebuild Project,之后重新运行带覆盖率的测试,很多时候缓存问题就能解决。

  • 确认测试类型和运行范围匹配
    如果你写的是Instrumented Tests(需要在设备/模拟器上运行的测试),但右键运行时选了错误的测试类型,也可能导致覆盖率统计异常。要确保选择Run Tests With Coverage时,对应的测试类型是正确的——比如Instrumented Tests需要设备正常连接,且Run Configuration类型为Android Instrumented Tests。

这些是我当时排查出来的核心原因,你可以逐个尝试,应该能解决覆盖率全为0%的问题!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:08:33