Ale*_*dov 31 testing stdout stderr gradle
(Gradle 3.2.1)我运行了一些java测试,它们在Stderr/Stdout中记录输出.如果我开始,我可以看到输出
gradle test --info
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,第三方图书馆的大量不需要的输出也是如此.
文档建议使用logging.caputureStandardError / logging.caputureStandardError (loglevel),但似乎没有任何影响.
tasks.withType(Test) {
logging.captureStandardOutput LogLevel.QUIET
logging.captureStandardError LogLevel.QUIET
}
Run Code Online (Sandbox Code Playgroud)
然后如果运行gradle test,则不在控制台中输出STDERR/STDOUT.
如何从控制台中的测试类中获取输出?
Omi*_*mid 51
将这些行添加到build.gradle:
apply plugin: 'java'
test {
dependsOn cleanTest
testLogging.showStandardStreams = true
}
Run Code Online (Sandbox Code Playgroud)
更好的方法:
apply plugin: 'java'
test {
testLogging {
outputs.upToDateWhen {false}
showStandardStreams = true
}
}
Run Code Online (Sandbox Code Playgroud)
注意:dependsOn cleanTest没有必要,但如果不使用,只有在它们不是最新的情况下才会显示输出,在这种情况下,您需要在任务之前运行cleanTest或clean执行test任务.
有关更多信息和选项,请参阅文档.
小智 17
对于使用 Kotlin/Kotlin DSL for Gradle 的用户,您需要将以下内容放入您的build.gradle.kts文件中:
tasks.withType<Test> {
this.testLogging {
this.showStandardStreams = true
}
}
Run Code Online (Sandbox Code Playgroud)
同样如另一个答案中所述,您gradle clean test每次都需要运行输出才能打印。
| 归档时间: |
|
| 查看次数: |
14046 次 |
| 最近记录: |