#Emma是什么?
Emma是用来生成java程序代码覆盖率报告的工具,具体的介绍和简单教程请看之前博客的链接EMMA教程。而EMMA这款工具怎么生成安卓测试程序运行安卓程序的代码覆盖率呢?上网查了很多教程,但大多冗余没有干货,抄来抄去没有新的内容,导致能解决我的问题的内容少之又少。于是整理一下今天使用Emma的一些难点和心得。


#环境准备

  • Android SDK
  • ANT

没有的搜一下网上的教程就好,这里我们要用到ant进行插装编译,ant中集成了emma,所以emma也不用下了。这里的使用环境为Windows,SDK版本为Android-21.注意EMMA只能对有源码的工程进行覆盖率监测。


#步骤
假设待测APK的目录为\Lesson3,测试工程的目录为\Lesson3Test。\代表当前目录,步骤如下:

  • 首先cd到\Lesson3,输入android update project -p \ Enter,这一步将在Lesson3目录下生成ant的配置文件build.xml。

  • 再cd到\Lesson3Test,输入android update test-project -m ..\Lesson3 -p \ Enter ,这一步将在测试工程Lesson3Test目录下生成ant的配置文件build.xml。

  • 这一步针对你的应用依赖appcompat_v7这个库的工程。打开以上两个工程目录中的build.xml,在<fail\>标签前面加上

    1
    <property name="aapt.ignore.assets" value="!.svn:!.git:\x3Cdir\x3E_*:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~:crunch" />

否则会出return null 1的错误。

  • 如果工程有依赖的包,新建一个libs文件夹,放到其中,ant将自动建立依赖。

  • cd到\LessonTest文件夹,输入ant emma debug install test 命令,大功告成!


#参考目录
EMMA对Android工程单元测试覆盖率进行检查
使用EMMA获取Android测试覆盖率
使用 ANT 命令行编译 Android 工程