实用Jacoco代码覆盖率Android集成与使用

本文介绍了如何在Android项目中集成Jacoco以生成代码覆盖率报告。首先,在gradle中添加Jacoco插件和配置,启用测试覆盖率。接着,通过UI测试脚本和特定的gradle任务来整合报告。在Android设备上执行测试后,将生成的.ec文件拉取到本地,运行gradlew jacocoTestReport生成HTML报告。最后,提供了遇到问题时的解决建议,如更换手机以避免覆盖率收集失败。
摘要由CSDN通过智能技术生成

Jacoco集成步骤

 

1. 在gradle中引入jacoco加入以下:

apply plugin: 'jacoco'

....

jacoco{

    toolVersion = "0.7.1.201405082137"

}

android {

    buildTypes {

            debug {

                testCoverageEnabled = true

            }

 


 

2.接下来加入UI测试脚本

androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.1'

3.在gradle文件中加入如下脚本,来对生成的.ec文件和编译产生的.class文件进行整合形成代码覆盖率报告。

//这里定义为你想要进行代码覆盖率统计的java目录

defcoverageSourceDirs = [

        '../app/src/main/java'

]

 

 

taskjacocoTestReport(type: JacocoReport) {

    group = "Reporting"

description = "Generate Jacoco coverage reportsafter running tests."

//这里为生成报告的类型

    reports {

        xml.enabled = true

        html.enabled = true

}

 

//这里为编译后产生的.class文件目录,excludes为你不想进行代码覆盖率统计的文件

    classDirectories = fileTree(

            dir: './build/intermediates/classes/debug',

            excludes: ['**/R*.class',

                       '**/*$InjectAdapter.class',

                       '**/*$ModuleAdapter.class',

                       '**/*$ViewInjector*.class'

            ])

sourceDirectories = files(coverageSourceDirs)

//代码覆盖率报告的生成文件目录

    executionData = files("$buildDir/outputs/code-coverage/connected/coverage.ec")

 

    doFirst {

        new File("$buildDir/intermediates/classes/").eachFileRecurse{ file ->

            if (file.name.contains('$$')) {

                file.renameTo(file.path.replace('$$','$'))

            }

        }

    }

}

 

整合后,完整的gradle文件如下:

apply plugin: 'jacoco'



jacoco {
    toolVersion = "0.7.4+"
}

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.zdj.method2"
        minSdkVersion 15
        targetSdkVersion 23
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值