在Android studio里,单测分为本地单测和Android单测两种,区别在于是否需要使用dvm虚拟机,前者只需要jvm虚拟机。
一、计算AndroidTest覆盖率
如果要计算AndroidTest的覆盖率,只需要在模块的build.gradle里的buildTypes闭包里添加开启覆盖率统计即可。
debug {
testCoverageEnabled true
}
这个功能貌似在android 5.0以上可以,我试过两个5.0以下的手机,覆盖率都是零。
要生成报告,可以在AS里找到Gradle菜单,找到verification ->createDebugCoverageReport,右键运行这个task就可以了。
QQ20160410-0@2x.png
QQ20160410-1@2x.png
或者在project目录下运行(mac下)
./gradlew createDebugCoverageReport
这个task。
每个模块都会生成单独的覆盖率文件,在各自的
build/reports/coverage/debug/index.html.
二、计算Junit单测覆盖率
切换Test Artifact为Junit Test
img-37.png
在test文件夹下包名右键(注意是test不是AndroidTest了),在右键菜单选择create 'Test in xxx',弹出的配置里选择工作路径等信息
QQ20160410-2@2x.png
在Code Coverage tab下悬着Intellij IDea作为coverage runner,然后确认回到工程,右键case就会出现run xxx with Coverage的菜单了。
QQ20160410-3@2x.png
执行完会弹出覆盖率
QQ20160410-4@2x.png