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

Android单元测试如何统计项目业务功能的测试覆盖率?

Android 单元测试业务功能覆盖率统计实现方案

默认的createDebugCoverageReport任务会统计项目全量代码的覆盖率,包含自动生成类、基础工具类、依赖注入等非业务代码,你可以通过调整Jacoco(Android覆盖率统计底层依赖工具)的统计规则实现业务维度的覆盖率统计:

第一步:限定覆盖率统计的业务代码范围

  • 打开模块级build.gradle(Groovy)或build.gradle.kts(Kotlin)文件,添加如下配置:
android {
    buildTypes {
        debug {
            // 开启覆盖率统计能力
            testCoverageEnabled = true
        }
    }
}

tasks.withType(JacocoReport::class.java) {
    classDirectories.setFrom(
        files(classDirectories.files.map { dir ->
            fileTree(dir).apply {
                // 排除所有非业务代码
                exclude(
                    "**/R.class",
                    "**/R$*.class",
                    "**/BuildConfig.*",
                    "**/databinding/**",
                    "**/di/**",
                    "**/utils/**",
                    "**/base/**",
                    "**/*Test*.*"
                )
                // 只统计业务代码所在的目录,示例路径为com/xxx/你的项目名/business/下的所有代码
                include("com/xxx/yourproject/business/**")
            }
        })
    )
}
  • 配置完成后执行./gradlew createDebugCoverageReport命令,生成的报告默认路径为对应模块/build/reports/coverage/debug/index.html,打开后即可看到全量业务代码的单元测试覆盖率。

第二步:按单个业务功能统计覆盖占比(可选)

如果需要拆分统计不同业务功能的覆盖率,你可以通过以下两种方式实现:

  • 直接在生成的HTML覆盖率报告中,按目录层级进入对应业务功能的代码目录,即可查看该功能的单独覆盖率,比如进入account目录就能看到账户相关功能的覆盖率,进入order目录就能看到订单相关功能的覆盖率。
  • 如果你需要自动导出各业务功能的覆盖率数据,可以在Jacoco任务中增加分组统计逻辑:
tasks.withType(JacocoReport::class.java) {
    doLast {
        val coverage = jacocoCoverageCounter
        // 统计账户业务覆盖率
        val accountRatio = coverage.getBundle("account").classCounter.coveredRatio
        println("账户功能覆盖率:${String.format("%.2f", accountRatio * 100)}%")
        // 统计订单业务覆盖率
        val orderRatio = coverage.getBundle("order").classCounter.coveredRatio
        println("订单功能覆盖率:${String.format("%.2f", orderRatio * 100)}%")
    }
}

注意:多模块架构项目只需在业务模块添加上述配置即可,基础组件、公共库等非业务模块不需要配置覆盖率规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 05:15:03