如何在执行android仪器测试时在cmd控制台中打印日志

时间:2016-04-05 11:45:51

标签: android testing logging printing cmd

我在Windows系统上打开一个cmd,然后输入" adb shell am instrument -w com.demo.uia.test/android.support.test.runner.AndroidJUnitRunner"运行android测试。

我想在运行测试时在cmd中打印日志,有人能告诉我如何编写代码来打印日志吗?我绑定了system.out.println("xx")Log.i("xx","xx"),但它没用。

我想在cmd行显示日志,而不是在logcat中显示。 我现在解决了这个问题,使用sendStatus api。

1 个答案:

答案 0 :(得分:6)

我想@MoMo做了类似的事情,在命令提示符窗口中输入日志输出:

在测试类中定义一个函数:

private void out(String str) {
    Bundle b = new Bundle();
    b.putString(Instrumentation.REPORT_KEY_STREAMRESULT, "\n" + str);
    InstrumentationRegistry.getInstrumentation().sendStatus(0, b);
}

然后只需在@Test函数中使用它,如:

out("Some message...");

在命令提示符窗口中使用 adb shell am instrument ... 运行测试时会出现输出,但它不会显示在Android Studio的“运行”窗口中。它以某种方式过滤测试运行的输出,我找不到修改此过滤器的设置。