写入Android UI Automator输出控制台

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

Solutions Collecting From Web of "写入Android UI Automator输出控制台"

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

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

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

注意:这只有在使用最新版本的UiAutomator(2.0+)时才有效。 旧版本无法访问Instrumentation,因此如果您使用的是基于shell的UiAutomator,那么可以升级!

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

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

另一方面,UIAutomator的最新版本用于实现InstrumentationTestCase的testing类中。 这个类远远地是junit.framework.Assert的祖先( http://developer.android.com/reference/junit/framework/Assert.html )。 我假设你会从它的方法中find有用的东西。 可能是格式方法是你正在寻找。

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

快速示例将是:

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

希望这是你的期待!

如果你想使用Java的打印语句,你应该导入:

  import static java.lang.System.out; 

在你完成导入之后,你可以使用:

 out.println("hello world");