Android在使用脚本编译和测试时,使用默认的testrunner不会输出文件类型的单元测试报告,每次只能分析logcat的无法直观的看到单元测试结果和报告,这给编写自动化脚本带来了不少麻烦,虽然可以自己动手编写支持junit测试报告输出的TestRunner,但是比较麻烦。除此之外,有一个android-junit-report.jar的开源包可以拿来使用,使用方法也很简单,输出的单元测试报告也可以为多种报告分析工具分析。具体使用方法如下:
这里假设Android APP的包名为com.xxx.xxx
方法1:使用Eclipse IDE方式
1.下载android-junit-report.jar并将其导入到Android测试项目的libs中
2.打开Android测试项目的AndroidManifest.xml文件,找到
|
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.xxx.xxx" />
|
修改为
|
<instrumentation
android:name="com.zutubi.android.junitreport.JUnitReportTestRunner"
android:targetPackage="com.xxx.xxx" />
|
3.运行Junit测试 4.使用ADB方式获取单元测试报告
|
adb pull /data/data/com.xxx.xxx/files/junit-report.xml
|
方法2:使用ant方式
1.下载android-junit-report.jar并将其导入到Android测试项目的libs中
2.编辑ant.properties文件,增加以下内容
|
test.runner=com.zutubi.android.junitreport.JUnitReportTestRunner
|
3.运行单元测试
|
ant clean debug install test
|
4.使用ADB方式获取单元测试报告
|
adb pull /data/data/com.xxx.xxx/files/junit-report.xml
|
方法3:使用Ant Build方式
1.下载android-junit-report.jar并将其导入到Android测试项目的libs中
2.编辑ant.properties文件,增加以下内容
|
test.runner=com.zutubi.android.junitreport.JUnitReportTestRunner
|
3.在Build.xml中增加以下target内容
|
<target name="fetch-test-report">
<xpath input="${tested.project.dir}/AndroidManifest.xml"
expression="/manifest/@package" output="tested.package"/>
<echo>Downloading XML test report...echo>
<mkdir dir="${reports.dir}"/>
<exec executable="${adb}" failonerror="true">
<arg line="${adb.device.arg}"/>
<arg value="pull" />
<arg value="/data/data/${tested.package}/files/junit-report.xml"/>
<arg value="${reports.dir}/junit-report.xml"/>
exec>
target>
|
4.运行单元测试
|
ant clean debug install test fetch-test-report
|
参考:
http://zutubi.com/source/projects/android-junit-report/documentation/
http://www.dotblogs.com.tw/yuanchien/archive/2010/11/24/add-emma-for-unit-testing.aspx
评论区