【问题标题】:How to retrieve test results when using "adb shell am instrument"使用“adb shell am instrument”时如何检索测试结果
【发布时间】:2015-11-24 14:32:57
【问题描述】:

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

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

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

谢谢

【问题讨论】:

    标签: android android-studio adb


    【解决方案1】:

    但是,此过程是否还会在设备内部生成结果文件(xml、html 等)?

    不,它没有。

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

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

    【讨论】:

    • 那么有什么解决方案/方法可以更好地显示测试结果吗?我问这个是因为当我通过 Android Studio 运行测试时,它会生成 xml、html 等格式的 junit 测试输出。
    • 报告生成通常在比'am instrument'更高的层处理。如果您使用 Gradle 运行测试,它应该会为您生成报告。我相信这也是 Android Studio 所依赖的。
    • 如果您必须从测试本身生成报告,您可以使用自定义测试运行器。请参阅此答案以了解一种方法:stackoverflow.com/a/5574418/1999084
    • 谢谢,它有帮助。您能否在主要答案中添加这些信息?
    • 只是一个附加信息:如果您使用的是谷歌页面推荐的测试运行器(AndroidJUnitRunner),可能此回复中指出的解决方案将不起作用。我在这篇很棒的文章中找到了解决方案:everybodytests.com/2015/04/…
    【解决方案2】:

    我遇到了类似的问题(当我的 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
    

    【讨论】:

    • 我看不到在 android emulator 5.1.1 设备上生成的 report.xml。你能帮忙吗?
    • 嗨@rupeshjain 看起来在旧的android 版本上emulated/0 目录不存在......对我来说,我不得不使用/storage/sdcard/Android/data/de.schroepf.demoapp/files 来访问5.x 模拟器上的报告.. .
    【解决方案3】:

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

    adb pull storage/emulated/0/odo/

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

    【讨论】:

    • 这似乎仍然有效。我以为它在最近的模拟器中停止工作,但事实证明我没有使用 Test Orchestrator 运行测试。
    猜你喜欢
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    • 2013-12-10
    • 1970-01-01
    相关资源
    最近更新 更多