Gradle:如何将测试 STDERR/STDOUT 的输出输出到控制台?
Gradle: How to get output from test STDERR/STDOUT into console?
(Gradle 3.2.1) 我 运行 一些 java 测试,在 Stderr/Stdout 中记录输出。我可以看到输出,如果我开始
gradle test --info
但在那种情况下,第 3 方库的许多不需要的输出也在那里。
Documentation建议使用logging.caputureStandardError / logging.caputureStandardError (loglevel)
,但好像没什么效果。
tasks.withType(Test) {
logging.captureStandardOutput LogLevel.QUIET
logging.captureStandardError LogLevel.QUIET
}
那么如果运行宁gradle test
,控制台输出的不是STDERR/STDOUT
如何在控制台中只获取测试 类 的输出?
将这些行添加到 build.gradle
:
apply plugin: 'java'
test {
dependsOn cleanTest
testLogging.showStandardStreams = true
}
注意:dependsOn cleanTest
不是必需的,但是如果不使用,则需要运行cleanTest
或 clean
任务在 test
任务之前。
编辑:
更好的方法:
apply plugin: 'java'
test {
testLogging {
outputs.upToDateWhen {false}
showStandardStreams = true
}
}
注意:outputs.upToDateWhen {false}
不是必需的,但如果不用,则需要运行cleanTest
或 clean
任务在 test
任务之前。
有关详细信息和选项,请参阅 the documentation。
对于那些为 Gradle 使用 Kotlin/Kotlin DSL 的用户,您需要将以下内容放入 build.gradle.kts
文件中:
tasks.withType<Test> {
this.testLogging {
this.showStandardStreams = true
}
}
另外如另一个答案中所述,您需要 运行 gradle clean test
才能每次打印输出。
(Gradle 3.2.1) 我 运行 一些 java 测试,在 Stderr/Stdout 中记录输出。我可以看到输出,如果我开始
gradle test --info
但在那种情况下,第 3 方库的许多不需要的输出也在那里。
Documentation建议使用logging.caputureStandardError / logging.caputureStandardError (loglevel)
,但好像没什么效果。
tasks.withType(Test) {
logging.captureStandardOutput LogLevel.QUIET
logging.captureStandardError LogLevel.QUIET
}
那么如果运行宁gradle test
,控制台输出的不是STDERR/STDOUT
如何在控制台中只获取测试 类 的输出?
将这些行添加到 build.gradle
:
apply plugin: 'java'
test {
dependsOn cleanTest
testLogging.showStandardStreams = true
}
注意:dependsOn cleanTest
不是必需的,但是如果不使用,则需要运行cleanTest
或 clean
任务在 test
任务之前。
编辑:
更好的方法:
apply plugin: 'java'
test {
testLogging {
outputs.upToDateWhen {false}
showStandardStreams = true
}
}
注意:outputs.upToDateWhen {false}
不是必需的,但如果不用,则需要运行cleanTest
或 clean
任务在 test
任务之前。
有关详细信息和选项,请参阅 the documentation。
对于那些为 Gradle 使用 Kotlin/Kotlin DSL 的用户,您需要将以下内容放入 build.gradle.kts
文件中:
tasks.withType<Test> {
this.testLogging {
this.showStandardStreams = true
}
}
另外如另一个答案中所述,您需要 运行 gradle clean test
才能每次打印输出。