iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >使用EMMA获取Android测试覆盖率
  • 374
分享到

使用EMMA获取Android测试覆盖率

覆盖率Android 2022-06-06 12:06:36 374人浏览 泡泡鱼
摘要

  EMMA是一个Java代码测试覆盖率获取工具。尝试了一种使用EMMA获取Android测试覆盖率的方法,参考使用了 DynoDroid提供的方法,其原理是使用插桩与Br

  EMMA是一个Java代码测试覆盖率获取工具。尝试了一种使用EMMA获取Android测试覆盖率的方法,参考使用了 DynoDroid提供的方法,其原理是使用插桩与BroadcastReceiver,使得插桩后打包签名而成的APK运行时每次操作均发送信息给BroadcastReceiver,BroadcastReceiver中负责将覆盖率信息写到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,加入SMSInstrumentedReceiver、EmmaInstrumentationActivity:

  加入插桩标签,并允许写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文件夹下生成覆盖率报告:

  


--结束END--

本文标题: 使用EMMA获取Android测试覆盖率

本文链接: https://www.lsjlt.com/news/28747.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作