请参阅Android Studio中的测试输出(stdout)

时间:2017-11-20 00:09:07

标签: android unit-testing android-studio junit

我已经阅读了与此相关的所有问题,没有任何内容对我有用。

  • Android studio版本:2.3.3
  • compileSdkVersion 25
  • buildToolsVersion' 26.0.1'
  • Gradle构建工具版本:2.3.3

我试图做一些非常简单的事情。当我运行测试时,我想看看测试的输出。这是一些示例代码:

// MyClassTest
@Test
public void myMethodTest() throws Exception {
    System.out.println("Hello from myMethodTest!");
    int res = Whitebox.invokeMethod(MyClass.class, "myMethod", arg1, arg2);
    assertThat(res, is(1));
}

// MyClass
private int myMethod(int arg1, int arg2) {
    System.out.println("Hello from myMethod!");
    return 0;
}

whitebox的东西在这里可能并不重要,但我把它包括在内以防万一。当我运行它时,它告诉我断言失败了。我也得到了"Hello from myMethodTest"输出,但我无法看到"Hello from myMethod"输出。这使我很难弄清楚我的方法出错的地方。我记录的Timber东西都没有出现。

我已尝试通过GUI和控制台使用gradlegradlew运行测试,其中包含所有各种选项(--info--stacktrace,等等。)。我还尝试了所有内容hereherehere。当然,这一定是可能的,谢谢。

1 个答案:

答案 0 :(得分:2)

Occam的Razor说myMethod()没有被调用。你没有获得日志输出(虽然有证据表明其他地方的记录正在运行),并且你的断言基于结果失败。

  

知道木材输出没有出现在这些单元测试中也很好

我没有在单元测试中使用Timber来了解当没有使用Log的Android时它会做什么。