android studio代码覆盖率,android下gradle+jacoco收集手工代码覆盖率[排坑记]

前言

目前安卓下使用gradle+jacoco的方案大致有三种,前两种为自动,第三种为手工。这里将对第三种方案下收集手工代码覆盖率中遇到的问题进行描述和解决。

PS:本文不会编写完整的教程,仅针对instrument 方式教程中所存在问题进行补充。若还存在问题,请留言或邮箱jin1ming@foxmail.com。

排坑

本次工作在MacOX 10.14.6与Android Studio 4.0下。系统应当都兼容吧,AS版本只要不是太旧应该就可以。

gradle版本

gradle插件版本和gradle版本,不能太高也不能太低,经尝试最适合的版本为:

Android Gradle Plugin Version 3.5.0

Gradle Version 5.5

修改建议在AS中File->Project Structure中进行:

510763394f1f

屏幕快照 2020-07-03 上午11.35.59.png

生成html报告的gradle脚本任务

陈年教程,应该是因为AS更新后,目录发生了变化,需要自己修改下:

原:

task jacocoTestReport(type: JacocoReport) {

group = "Reporting"

description = "Generate Jacoco coverage reports after running tests."

reports {

xml.enabled = true

html.enabled = true

}

classDirectories = fileTree(

dir: './build/intermediates/app_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/app_classes/").eachFileRecurse { file ->

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

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

}

}

}

}

将classes目录修改后:

task jacocoTestReport(type: JacocoReport) {

group = "Reporting"

description = "Generate Jacoco coverage reports after running tests."

reports {

xml.enabled = true

html.enabled = true

}

classDirectories = fileTree(

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

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/javac/debug/classes/").eachFileRecurse { file ->

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

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

}

}

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值