【android测试】jacoco做功能测试代码覆盖率统计
来源:互联网 发布:网络信息安全应急演练 编辑:程序博客网 时间:2024/04/29 00:08
1、新建test pkg
2、InstrumentedActivity要继承Main Activity
3、增加声明和申请权限
Manifest中增加:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<instrumentation
android:name="com.xyy.jacoco.test.JacocoInstrumentation"
android:handleProfiling="true"
android:label="CoverageInstrumentation"
android:targetPackage="com.xyy.jacoco"/>
Application中增加:
<activity
android:name=".test.InstrumentedActivity"
android:label="InstrumentationActivity"/>
4、build.gradle中增加jacoco的插件和开关
使用插件
apply plugin: 'jacoco'
使用开关
debug {
testCoverageEnabled = true
}
5、编译成debug包
6、确保我们写的instrumentation已经在设备上正确安装
adb shell pm list instrumentation
7、通过adb shell am instrument命令调起app
adb shell am instrumentcom.xyy.jacoco/com.xyy.jacoco.test.JacocoInstrumentation
adb logcat |findstr JacocoInstrumentation //查看JacocoInstrumentation.java输出的日志,便于定位
8、操作手机,进行功能测试
9、生成coverage.ec文件
测试完成后,点击返回键退出app,将生成coverage.ec文件
/data/data/<yourPackageName>/files/coverage.ec
10、coverage.ec文件发到对应目录
coverage.ec放入app根目录/build/outputs/code-coverage/connected
11、修改build.gradle文件,增加以下代码在底部
def coverageSourceDirs = [
'../app/src/main/java'
]
task jacocoTestReport(type: JacocoReport) {
group = "Reporting"
description = "Generate Jacoco coverage reports after runningtests."
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/coverage.ec")
doFirst {
new File("$buildDir/intermediates/classes/").eachFileRecurse { file ->
if (file.name.contains('$$')) {
file.renameTo(file.path.replace('$$','$'))
}
}
}
12、在app的项目目录下执行gradle jacocoTestReport
13、查看覆盖率html报告
执行完gradle jacocoTestReport后,我们可以在app\build\reports\jacoco\jacocoTestReport\html目录下看到html报告。
将index.html拖到浏览器中,可以看到具体的覆盖率数据啦。
- 【android测试】jacoco做功能测试代码覆盖率统计
- jacoco统计自动化测试代码覆盖率
- Android单元测试/Ui测试+JaCoCo覆盖率统计
- sonar 集成代码测试覆盖率插件jacoco
- 移动测试基础 jacoco 统计 Android 手工测试覆盖率并自动上报
- Android自动化测试代码覆盖率统计
- jacoco仿emma实现统计手工(UI)测试覆盖率
- jacoco测试覆盖率maven配置
- Android UI测试框架Espresso以及代码覆盖率jacoco的使用
- 使用dropwizard(4)-加入测试-jacoco代码覆盖率
- jacoco远程统计代码覆盖率(实践)
- Jacoco覆盖率工具使用(已测试)
- Jacoco覆盖率工具使用(已测试)
- 使用EclEmma统计代码的测试覆盖率
- sonar ant+jacoco 编译测试并出具测试代码覆盖率报告
- Powermock和jacoco动态测试覆盖率较低,统计不准确
- Android测试 ---- Espresso + Jacoco
- 代码覆盖率-JaCoCo
- 我的Laravel学习之路之环境配置
- 推流工具
- checkbox的全选
- QNX系统的ftp调试,连接FTP调试-QNX的PC104调试ftp
- Java基础--反射
- 【android测试】jacoco做功能测试代码覆盖率统计
- Mybatis传多个参数(三种解决方案)
- pptpd 安装步骤
- 视频分类/动作识别数据库研究现状
- Discuz主要的几张表
- GDB常用命令
- 深度探索C++对象模型之前言
- Oracle、SQL和DB2分页查询写法介绍
- 观察者模式:推模型与拉模型