资讯专栏INFORMATION COLUMN

使用EMMA获取Android测试覆盖率

Near_Li / 2722人阅读

摘要:是一个代码测试覆盖率获取工具。尝试了一种使用获取测试覆盖率的方法,参考使用了提供的方法,其原理是使用插桩与,使得插桩后打包签名而成的运行时每次操作均发送信息给,中负责将覆盖率信息写到卡的名为的文件中。

EMMA是一个Java代码测试覆盖率获取工具。尝试了一种使用EMMA获取Android测试覆盖率的方法,参考使用了
DynoDroid提供的方法,其原理是使用插桩与BroadcastReceiver,使得插桩后打包签名而成的APK运行时每次操作均发送信息给BroadcastReceiverBroadcastReceiver中负责将覆盖率信息写到SD卡的名为coverage.ec的文件中。其一大优点为全程无需修改原APK的源码。

Pre

假定APK所在包为net.clasnake.project,工程主目录为/folder

Step 1 插桩

首先下载EmmaInstrument.rar,解压后包含四个文件:

EmmaInsrumentation.java

FinishListener.java

InstrumentedActivity.java

SMSInstrumentedReceiver.java

将文件夹EmmaInstrument复制到/folder/src下。
将上述四个java文件的包名修改为net.clasnake.project.EmmaInstrument,并令InstrumentedActivity继承自项目的主Activity。
然后修改AndroidManifest.xml,加入SMSInstrumentedReceiverEmmaInstrumentationActivity


    
        
    


加入插桩标签,并允许写SD卡权限:



Step 2 重编译、安装

连接设备至adb,首先android update project更新项目,生成build.xml,以便使用ant。

然后编译插桩版本:ant instrument

安装:ant installi

Step 3 测试

启动插桩版本:
adb shell am instrument net.clasnake.project/net.clasnake.project.EmmaInstrument.EmmaInstrumentation

进行测试,结束后使用后退键退出应用。

从设备中得到coverage.ec:adb pull /mnt/sdcard/coverage.ec

从/folder/bin中得到coverage.em,该文件中包含了待测APP的结构信息,将其与coverage.ec放置同一目录下,然后生成覆盖率报告:

java -cp ~/adt/sdk/tools/lib/emma.jar emma report -r html -in coverage.em,coverage.ec

在同目录下的coverage文件夹下生成覆盖率报告:

参考引用

EMMA

DynoDroid

原文链接

http://clasnake.net/emma_for_android/

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/12201.html

相关文章

  • Android设备上使用RecyclerView和CardView组合

    摘要:在自定义的构造函数内,初始化属于条目的视图。接下来,向自定义适配器添加构造函数,以便它具有显示数据的句柄。这是通过使用来填充布局来完成的,将输出传递给自定义的构造函数。 原文:https://code.tutsplus.com/zh-...原作:Ashraff Hathibelagal翻译:作茧自缚 如果您有兴趣构建一个利用列表显示数据的Android应用程序,Android Loll...

    miguel.jiang 评论0 收藏0
  • Android external扩展工程

    摘要:的扩展工程包含在文件夹中,这是一些经过修改后适应系统的开源工程,这些工程有些在主机上运行,有些在目标机上运行工程名称工程描述高级加密标准服务器主机自动生成语法分析器程序蓝牙库主机用于二进制文件生成补丁主机目标机压缩文件工具主机模板语言,包Android的扩展工程包含在external文件夹中,这是一些经过修改后适应Android系统的开源工程,这些工程有些在主机上运行,有些在目标机上运行; ...

    fnngj 评论0 收藏0
  • JS常用正则表达式备忘录

    摘要:想阅读更多优质文章请猛戳博客一年百来篇优质文章等着你正则表达式或用于匹配字符串的各个部分下面是我创建正则表达式的备忘单。 想阅读更多优质文章请猛戳GitHub博客,一年百来篇优质文章等着你! 正则表达式或regex用于匹配字符串的各个部分 下面是我创建正则表达式的备忘单。 匹配正则 使用 .test() 方法 let testString = My test string; let t...

    reclay 评论0 收藏0
  • FCC 成都社区·前端周刊 第 4 期

    摘要:详情删除未使用的样式是一个从样式表中删除未使用的工具。详情参与年前端工具调查为收集前端开发人员的意见,并了解整个开发行业的工具习惯,请戳详情参与调查吧这是年的调查结果详情每周一同步更新到欢迎 01. Angular, React or Vue? 如何为下一个 Web 应用程序选择合适的JavaScript 框架?Progress 的新白皮书提供了对 Angular、React 和 Vu...

    jonh_felix 评论0 收藏0
  • FCC 成都社区·前端周刊 第 4 期

    摘要:详情删除未使用的样式是一个从样式表中删除未使用的工具。详情参与年前端工具调查为收集前端开发人员的意见,并了解整个开发行业的工具习惯,请戳详情参与调查吧这是年的调查结果详情每周一同步更新到欢迎 01. Angular, React or Vue? 如何为下一个 Web 应用程序选择合适的JavaScript 框架?Progress 的新白皮书提供了对 Angular、React 和 Vu...

    opengps 评论0 收藏0

发表评论

0条评论

Near_Li

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<