Android Ui 代码覆盖率插件—jacoco

      由于单元测试很难在公司推行,且为了解决新功能测试以及回归测试在手工测试的情况下,即便用例再为详尽,也会存在遗漏的用例。通过统计手工测试覆盖率的数据,可以及时的完善用例。 经过了解准备使用Jacoco完成这个需求.Jacoco是Java Code Coverage的缩写。

      通过插码形式,当我们测试App时,启动后,手动测试完成后,我们通过生成的报告就可以分析到我们手工测试的覆盖率,也就是说,我可以看出,我们手动测试过程中是否对我们的代码分支覆盖的足够多。


如何做呢?


1、将3以下三个类放入项目中:

 

2. 修改app的build.gradle文件

添加的代码内容:

apply plugin: 'jacoco'


jacoco {

    toolVersion = "0.7.9"

}


android {

    buildTypes {

            debug { testCoverageEnabled = true

        }

}

 

def coverageSourceDirs = [

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

]

 

task jacocoTestReport(type: JacocoReport) {

    group = "Reporting"

    description = "GenerateJacoco coverage reports after running tests."

    reports {

        xml.enabled = true

        html.enabled = true

    }

    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/flavors/coverage.ec")

 

    doFirst {

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

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

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

            }

        }

    }

}

dependencies {

        compile fileTree(dir:'libs', include: ['*.jar'])

}


3、修改AndroidManifest.xml文件


4、我们需要通过adb shell am instrument 包名/包名.test.JacocoInstrumentation 启动app;


adb shell am instrument com.example.admin.myapplication/包名.JacocoInstrumentation

5、进行app手工测试,测试完成后退出App,覆盖率文件会保存在手机/storage/emulated/0/Android/data/com.example.admin.myapplication/cache/coverage.ec目录(该目录可修改)

6、导出coverage.ec,把手机中的该文件放到项目的指定目录下,如下图所示。使用gradle jacocoTestReport分析覆盖率文件并生成html报告

7、分析覆盖率报告

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值