写入Android UI Automator输出控制台

时间:2015-07-16 11:57:33

标签: android android-uiautomator

我正在Android UI Automator上写一个小包装器。通常我们可以在控制台中看到测试用例状态。我可以访问它并添加我自己的消息吗?我试过了System.out.println。但它没有用。 有没有办法做到这一点?

4 个答案:

答案 0 :(得分:2)

您可以将Instrumentation.sendStatus(..)报告信息用于控制台。

sendStatus(..)将Bundle和状态代码作为参数。它不会让你直接在控制台上写一个字符串,但是Bundle中的每个键/值对都会这样写出来:

INSTRUMENTATION_STATUS: key1=value1
INSTRUMENTATION_STATUS: key2=value2
INSTRUMENTATION_STATUS_CODE: -1

注意:只有在使用最新版本的UiAutomator(2.0+)时,此功能才有效。旧版本无法访问Instrumentation,因此如果您使用基于shell的UiAutomator,则需要升级!

答案 1 :(得分:1)

如果从adb运行测试,最好的方法是打印到logcat:

import android.util.Log;

Log.d("My tag", "My log message");

另一方面,UIAutomator的最新版本用于实现InstrumentationTestCase的测试类中。这个类是junit.framework.Assert(http://developer.android.com/reference/junit/framework/Assert.html)的远祖。我假设你会从它的方法中找到有用的东西。可能格式化方法就是您要搜索的内容。

答案 2 :(得分:1)

Instrumentation.sendStatus(..)可用于写入uiautomator控制台。

快速示例将是:

   Bundle bundle = new Bundle();
   bundle.putString("MyResult","10");
   getAutomationSupport().sendStatus(0, bundle);

希望这是你想要的!

答案 3 :(得分:0)

如果要使用Java的print语句,则应导入:

 import static java.lang.System.out;

导入后,您可以使用:

out.println("hello world");