Home > 零敲碎打 > [Android]使用android-junit-report.jar导出单元测试报告

[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文件,找到

1
2
3
<instrumentation 
      android:name="android.test.InstrumentationTestRunner"
      android:targetPackage="com.xxx.xxx" />

修改为

1
2
3
<instrumentation 
      android:name="com.zutubi.android.junitreport.JUnitReportTestRunner" 
      android:targetPackage="com.xxx.xxx" />

3.运行Junit测试
4.使用ADB方式获取单元测试报告

1
adb pull /data/data/com.xxx.xxx/files/junit-report.xml

方法2:使用ant方式
1.下载android-junit-report.jar并将其导入到Android测试项目的libs中
2.编辑ant.properties文件,增加以下内容

1
test.runner=com.zutubi.android.junitreport.JUnitReportTestRunner

3.运行单元测试

1
ant clean debug install test

4.使用ADB方式获取单元测试报告

1
adb pull /data/data/com.xxx.xxx/files/junit-report.xml

方法3:使用Ant Build方式
1.下载android-junit-report.jar并将其导入到Android测试项目的libs中
2.编辑ant.properties文件,增加以下内容

1
test.runner=com.zutubi.android.junitreport.JUnitReportTestRunner

3.在Build.xml中增加以下target内容

1
2
3
4
5
6
7
8
9
10
11
12
<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.运行单元测试

1
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

Categories: 零敲碎打 Tags: ,
  1. nana
    August 27th, 2014 at 15:05 | #1

    安装后怎么说找不到runner?

  2. Cassjia
    May 3rd, 2016 at 15:58 | #2

    可以bulid成功,但是找不到报告文件,应该是没有生成,请问怎么解决?

  3. May 5th, 2016 at 10:23 | #3

    @Cassjia
    报告文件在测试机的存储里面,需要手动pull出来的
    adb pull /data/data/com.xxx.xxx/files/junit-report.xml

  1. September 16th, 2014 at 17:16 | #1