使用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 versionexport PROJECT_NAME=MyProjectexport ANDROID_VER=android-13#to parent foldercd ..# convert to ant projectandroid update project -p src -n ${PROJECT_NAME} -t ${ANDROID_VER}# convert to ant test projectandroid update test-project -m ../src -p test# run testcd testant clean emma debug install test# open reportopen ./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 versionset PROJECT_NAME=MyProjectset ANDROID_VER=android-13:: to parent foldercd ..:: convert to ant projectcall android.bat update project -p src -n %PROJECT_NAME% -t %ANDROID_VER%:: convert to ant test projectcall android.bat update test-project -m ..\src -p test:: run testcd testcall ant.bat clean emma debug install test:: open reportexplorer .\bin\coverage.html
转载请注明原文地址: https://ju.6miu.com/read-1308052.html