如何在使用" adb shell am instrument"时检索测试结果

时间:2015-11-24 14:32:57

标签: android android-studio adb

我使用以下命令在Android设备中执行了一些测试:

  

adb shell am instrument -w   package.name/android.test.runner.AndroidJUnitRunner

我可以通过STDOUT看到测试进度和简单结果。但是,此过程是否也在设备内生成结果文件(xml,html等)?如果是,它存储在哪里?

由于

3 个答案:

答案 0 :(得分:6)

  

但是,这个过程是否也会在设备中生成结果文件(xml,html等)?

不,它没有。

报告生成通常在比“仪器”更高的层处理。如果您使用Gradle运行测试,它应该为您生成报告。我相信这也是Android Studio所依赖的。

如果必须从测试本身生成报告,则可以使用自定义测试运行器。请参阅此答案,了解一种方法:http://www.stackoverflow.com/a/5574418/1999084

答案 1 :(得分:6)

我遇到了类似的问题(当我在设备上运行检测测试时,我想为我的Jenkins提供xml测试报告)。我通过实现“android-xml-run-listener”(https://github.com/schroepf/TestLab/tree/master/android)来解决它。

要使用它,只需添加:

androidTestCompile 'de.schroepf:android-xml-run-listener:0.1.3'

到您的build.gradle(注意androidTest前缀 - 这不会将代码添加到您的生产应用程序中!)。

要使用它,请添加:

-e listener de.schroepf.androidxmlrunlistener.XmlRunListener

到你的仪器命令。

要检索XML报告文件,请使用:

adb pull /storage/emulated/0/Android/data/<your-app-package-name>/files/report.xml

答案 2 :(得分:0)

如果使用AndroidTestOrchestrator执行测试,则会生成XML测试结果并将其存储在设备storage/emulated/0/odo/目录中。所以可以使用以下方式访问它们:

adb pull storage/emulated/0/odo/

我不确定为什么文档中的任何地方都没有提到这一点。 对于真实设备,这条路径可能会有所不同,我相信结果会在SDCARD的某处输出。