[Android]使用Emma进行单体测试代码覆盖率分析
使用Eclipse或Google的ADT Bundle集成开发环境进行android单体测试时,受开发工具的局限,目前暂时无法直接使用常规的插件(例如:eclemma,Clover Eclipse Plugin等)来获取单体测试代码覆盖率。一般来说使用以下方法来实现代码覆盖率的查看。
方法1:改变测试代码继承父类为TestCase而非AndroidTestCase。这种方法只能解决不依赖于Android SDK源代码的单体测试。
方法2:使用Android SDK中集成的Emma功能,使用ant进行命令行编译与单体测试。通过以下脚本实现。
这里假设Eclipse的项目名称为MyProject,文件路径如下
./ #项目主目录
./src #APP项目主目录
./test #APP测试项目主目录
MacOS/Linux Shell
# JAVA 根据实际情况设置,以下为默认安装路径 #Mac OS X #export JAVA_HOME=/Library/Java/Home; #Linux JDK #export JAVA_HOME=/usr/local/jdk1.6.0_11; #Linux JRE #export JAVA_HOME=/usr/lib/jvm/jre6; # ANT 根据实际情况设置,以下为默认安装路径 #Mac OS X #export ANT_HOME=/usr/share/ant; #Linux #export ANT_HOME=/usr/local/ant; #export PATH=${PATH}:${ANT_HOME}/bin; # Android SDK安装位置 #export ANDROID_HOME=~/android-sdk-macosx; #export PATH=${PATH}:${ANDROID_HOME}/tools; #export PATH=${PATH}:${ANDROID_HOME}/platform-tools; #classpath 将emma添加到classpath中去 #export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar:${ANDROID_HOME}/tools/lib/emma.jar; #android platform version export PROJECT_NAME=MyProject export ANDROID_VER=android-13 #to parent folder cd .. # convert to ant project android update project -p src -n ${PROJECT_NAME} -t ${ANDROID_VER} # convert to ant test project android update test-project -m ../src -p test # run test cd test ant clean emma debug install test # open report open ./bin/coverage.html |
Windows Batch
:: JAVA :: set JAVA_HOME=C:\Java\jdk1.6.0_11 :: ANT :: set ANT_HOME=C:\Ant :: set PATH=%PATH%;%ANT_HOME%/bin :: Android :: set ANDROID_HOME=C:\android-sdk-windows :: set PATH=%PATH%;${ANDROID_HOME}\tools :: set PATH=%PATH%;${ANDROID_HOME}\platform-tools :: classpath :: set CLASSPATH=%CLASSPATH%;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%ANDROID_HOME%\tools\lib\emma.jar :: android platform version set PROJECT_NAME=MyProject set ANDROID_VER=android-13 :: to parent folder cd .. :: convert to ant project call android.bat update project -p src -n %PROJECT_NAME% -t %ANDROID_VER% :: convert to ant test project call android.bat update test-project -m ..\src -p test :: run test cd test call ant.bat clean emma debug install test :: open report explorer .\bin\coverage.html |
博主你好,看了你的帖子很受教,但是我在Linux中运行脚本的时候出现了错误,BUILD FAILED。想请教一下您,不知方便不方便
感谢您持续关注,已将基本操作步骤发送到您的留言邮箱,希望可以帮助到您。
@李大仁
谢谢您的回复,已成功解决问题并执行成功。