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

如何从Android单元测试覆盖率报告中排除Hilt生成类

排除Hilt生成类以修正Android单元测试覆盖率报告

要解决Hilt生成类干扰覆盖率统计的问题,有两种常用方案,分别对应全局配置和单次测试配置:

一、Gradle全局配置(推荐)

直接在模块的Gradle配置中指定Jacoco要排除的Hilt生成类,这样所有测试任务都会生效,不用每次手动调整。

Kotlin DSL(build.gradle.kts)

在jacoco块或测试任务的配置里添加排除规则:

tasks.withType<Test> {
    configure<JacocoTaskExtension> {
        excludes = listOf(
            "**/hilt/**",
            "**/*Hilt*.class",
            "**/*_HiltComponents*.class",
            "**/*InjectorFactory*.class",
            "**/*Hilt_SingletonComponent*.class"
        )
    }
}

Groovy(build.gradle)

对应的Groovy写法:

tasks.withType(Test) {
    jacoco {
        excludes = [
            '**/hilt/**',
            '**/*Hilt*.class',
            '**/*_HiltComponents*.class',
            '**/*InjectorFactory*.class',
            '**/*Hilt_SingletonComponent*.class'
        ]
    }
}

这些规则会过滤掉Hilt自动生成的组件类、工厂类以及所有在hilt包下的生成文件,确保覆盖率统计只针对你的业务代码。

二、IntelliJ IDEA单次测试配置

如果只是临时调整某次测试的覆盖率统计范围,可以直接在IDE的运行配置里设置:

  • 点击顶部菜单栏的Run -> Edit Configurations
  • 在列表中找到你要调整的测试配置(比如单元测试类或方法)
  • 切换到Coverage标签页
  • 在Exclude patterns区域,点击+号添加以下规则:
    • **/hilt/**
    • **/*Hilt*.class
    • **/*_HiltComponents*.class
    • **/*InjectorFactory*.class
  • 保存配置后,再运行Run test with coverage,就能看到干净的覆盖率报告了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 04:19:54