android - 查看 Android Studio 中的测试输出 (stdout)

标签 android unit-testing android-studio junit

我已阅读与此相关的所有问题,但没有任何效果对我有用。

  • Android Studio版本:2.3.3
  • 编译SdkVersion 25
  • buildTools版本“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;
}

白盒的东西在这里可能并不重要,但我将其包括在内以防万一。当我运行这个时,它告诉我断言失败了。我还得到了 "Hello from myMethodTest"输出,但我看不到看到 "Hello from myMethod"输出。这使得找出我的方法哪里出了问题变得非常困难。我正在记录的木材内容也没有出现。

我尝试通过 GUI 和控制台使用 gradle 运行测试和gradlew ,具有所有各种选项( --info--stacktrace 等)。我也尝试过所有的东西here , here ,和 here 。当然,这一定是可能的,谢谢。

最佳答案

奥卡姆 Razor 说 myMethod() 没有被调用。您没有获得日志输出(同时有证据表明其他地方的日志记录正在工作)并且基于结果的断言失败。

It's also very good to know that Timber output does not appear in these unit tests

我还没有在单元测试中使用 Timber,不知道当没有 Android 可以使用 Log 时它会做什么。

关于android - 查看 Android Studio 中的测试输出 (stdout),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47383420/

相关文章:

xcode - Xcode 3.1 中的单元测试

android - 听 :true 时在 flutter 中使用 Provider 的问题

unit-testing - 将常量添加到 PHPUnit 中的模拟

java - Android Studio MalformedJsonException

git - Android Studio 不会忽略 .gitignore 文件

java - 如何调用在 Activity 中包含的 fragment 中初始化的适配器中的方法?

java - 按空格拆分字符串会删除换行符

android - 通过按下提交按钮从多个 fragment 获取值到 Activity

java - 我想为每个登录的用户显示唯一的列表。我该如何执行此操作?

angularjs - 单元测试 AngularJS 指令时,urlIsSameOrigin 函数失败