如何在 Android 单元测试中打开控制台输出?

How to turn on console output in Android Unit tests?

有没有办法在控制台输出中打开测试日志记录?

我知道我们可以查看 HTML 文件中生成的测试结果并在那里检查标准输出,但我觉得有点不方便。

我知道有一种方法可以使用标准 java 插件来做到这一点:

test {
    testLogging {
        events "passed", "skipped", "failed", "standardOut", "standardError"
    }
}

但是在Android项目中使用它会导致错误:

Could not find method test()

应用java插件当然是不可接受的,因为它与Android插件不兼容。

应该这样做

android {

...

  testOptions.unitTests.all {
    testLogging {
      events 'passed', 'skipped', 'failed', 'standardOut', 'standardError'
    }
  }
}

来源:https://groups.google.com/forum/#!topic/adt-dev/LwZiKTnj8Bc

android {

...

  testOptions {
        unitTests.all {
        // All the usual Gradle options.
            testLogging {
                events "passed", "skipped", "failed", "standardOut", "standardError"
                outputs.upToDateWhen {false}
                showStandardStreams = true
            }
        }
    } 
}

在我的例子中,我按照这个 document 并添加了上面的 testLogging 选项。这应该打印出在 src/test 文件夹下编写的单元测试的日志,而不是 src/androidTest 文件夹下的日志。在回答这个问题时,我使用的是 Android Studio 2.0 预览版和 gradle 2.8。命令是 ./gradlew test./gradlew test --continue,其中 iTerm 2 中的 运行。

比@ninjahoahong 的解决方案更漂亮(感谢 Tricky Android blog)。

只需将下一个代码添加到您的项目级别 build.gradleallprojects' 主体:

allprojects {
    // ...
    tasks.matching {it instanceof Test}.all {
        testLogging.events = ["failed", "passed", "skipped"]
    }
}