如何在 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.gradle
到 allprojects
' 主体:
allprojects {
// ...
tasks.matching {it instanceof Test}.all {
testLogging.events = ["failed", "passed", "skipped"]
}
}
有没有办法在控制台输出中打开测试日志记录?
我知道我们可以查看 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.gradle
到 allprojects
' 主体:
allprojects {
// ...
tasks.matching {it instanceof Test}.all {
testLogging.events = ["failed", "passed", "skipped"]
}
}