banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

[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

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。