我使用以下命令在Android设备中执行了一些测试:
adb shell am instrument -w package.name/android.test.runner.AndroidJUnitRunner
我可以通过STDOUT看到测试进度和简单结果。但是,此过程是否也在设备内生成结果文件(xml,html等)?如果是,它存储在哪里?
由于
答案 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的某处输出。