【发布时间】:2015-11-24 14:32:57
【问题描述】:
我正在使用以下命令在我的 Android 设备中执行一些测试:
adb shell am 仪器 -w package.name/android.test.runner.AndroidJUnitRunner
我可以通过STDOUT看到测试进度和简单结果。但是,此过程是否还会在设备内部生成结果文件(xml、html 等)?如果是,它存储在哪里?
谢谢
【问题讨论】:
标签: android android-studio adb
我正在使用以下命令在我的 Android 设备中执行一些测试:
adb shell am 仪器 -w package.name/android.test.runner.AndroidJUnitRunner
我可以通过STDOUT看到测试进度和简单结果。但是,此过程是否还会在设备内部生成结果文件(xml、html 等)?如果是,它存储在哪里?
谢谢
【问题讨论】:
标签: android android-studio adb
但是,此过程是否还会在设备内部生成结果文件(xml、html 等)?
不,它没有。
报告生成通常在比“仪器”更高的层处理。如果您使用 Gradle 运行测试,它应该会为您生成报告。我相信这也是 Android Studio 所依赖的。
如果您必须从测试本身生成报告,您可以使用自定义测试运行器。请参阅此答案以了解一种方法:http://www.stackoverflow.com/a/5574418/1999084
【讨论】:
我遇到了类似的问题(当我的 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
到你的 am instrument 命令。
要检索 XML 报告文件,请使用:
adb pull /storage/emulated/0/Android/data/<your-app-package-name>/files/report.xml
【讨论】:
emulated/0 目录不存在......对我来说,我不得不使用/storage/sdcard/Android/data/de.schroepf.demoapp/files 来访问5.x 模拟器上的报告.. .
如果您使用AndroidTestOrchestrator 执行测试,您的XML 测试结果将生成并存储在设备storage/emulated/0/odo/ 目录中。因此可以使用以下方式访问它们:
adb pull storage/emulated/0/odo/
我不确定为什么文档中的任何地方都没有提到这一点。 对于真实设备,这条路径可能会有所不同,我相信结果会在 SDCARD 的某个地方输出。
【讨论】: