[Android]使用android-junit-report.jar导出单元测试报告
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> |
修改为
<instrumentation android:name="com.zutubi.android.junitreport.JUnitReportTestRunner" android:targetPackage="com.xxx.xxx"></instrumentation> |
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
安装后怎么说找不到runner?
可以bulid成功,但是找不到报告文件,应该是没有生成,请问怎么解决?
@Cassjia
报告文件在测试机的存储里面,需要手动pull出来的
adb pull /data/data/com.xxx.xxx/files/junit-report.xml