首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Android和gradle上使用Jacoco生成覆盖率报告时排除测试

在Android和gradle上使用Jacoco生成覆盖率报告时,可以通过配置来排除测试。

首先,在项目的根目录下的build.gradle文件中,添加Jacoco插件的依赖:

代码语言:txt
复制
buildscript {
    dependencies {
        classpath 'org.jacoco:org.jacoco.core:0.8.7'
    }
}

然后,在app模块的build.gradle文件中,应用Jacoco插件并配置Jacoco任务:

代码语言:txt
复制
apply plugin: 'jacoco'

android {
    // ...
}

jacoco {
    toolVersion = "0.8.7"
}

task jacocoTestReport(type: JacocoReport, dependsOn: ['testDebugUnitTest', 'createDebugCoverageReport']) {
    reports {
        xml.enabled = true
        html.enabled = true
    }

    def fileFilter = ['**/R.class', '**/R$*.class', '**/BuildConfig.*', '**/Manifest*.*', '**/*Test*.*', 'android/**/*.*']
    def debugTree = fileTree(dir: "${buildDir}/intermediates/classes/debug", excludes: fileFilter)
    def mainSrc = "${project.projectDir}/src/main/java"

    sourceDirectories = files([mainSrc])
    classDirectories = files([debugTree])
    executionData = fileTree(dir: project.buildDir, includes: ['jacoco/testDebugUnitTest.exec', 'outputs/code-coverage/connected/*coverage.ec'])
}

在上述配置中,jacocoTestReport任务依赖于testDebugUnitTestcreateDebugCoverageReport任务,这两个任务会在执行jacocoTestReport之前生成测试覆盖率数据。

接下来,可以通过配置fileFilter来排除测试相关的文件,例如**/*Test*.*会排除所有包含"Test"的文件。

最后,执行以下命令生成覆盖率报告:

代码语言:txt
复制
./gradlew jacocoTestReport

执行完毕后,可以在app/build/reports/jacoco/jacocoTestReport目录下找到生成的覆盖率报告,包括XML和HTML格式的报告。

推荐的腾讯云相关产品:腾讯云移动测试服务(MTS),该服务提供了全面的移动应用测试解决方案,包括自动化测试、性能测试、兼容性测试等,可帮助开发者提高移动应用的质量和稳定性。产品介绍链接地址:腾讯云移动测试服务

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的结果

领券