(Gradle 3.2.1)我运行了一些java测试,它们在Stderr / Stdout中记录输出。如果我开始,我可以看到输出
gradle test --info
但在这种情况下,第三方库的大量不需要的输出也是如此。
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。
对于那些使用kotlin / kotlin dsl进行gradle的人,需要在build.grade.kts文件中添加以下内容:
tasks.withType<Test> {
this.testLogging {
this.showStandardStreams = true
}
}
另外,如另一个答案所述,您需要运行“gradle clean test”才能输出每次打印输出。