(Gradle 3.2.1) I run some java tests, which logs output in Stderr/Stdout. I can see that output, if I start
gradle test --info
but in that case, much of unwanted output from 3-rd party libraries is there too.
Documentation suggests using logging.caputureStandardError / logging.caputureStandardError (loglevel)
, but it doesn't seem to have any effect.
tasks.withType(Test) {
logging.captureStandardOutput LogLevel.QUIET
logging.captureStandardError LogLevel.QUIET
}
Then if running gradle test
, not STDERR/STDOUT is output in console.
How can I get just the output from the tests classes in console?
Add these lines to build.gradle
:
apply plugin: 'java'
test {
dependsOn cleanTest
testLogging.showStandardStreams = true
}
Notice: dependsOn cleanTest
is not necessary but if not used, you need to run cleanTest
or clean
task before test
task.
A better approach:
apply plugin: 'java'
test {
testLogging {
outputs.upToDateWhen {false}
showStandardStreams = true
}
}
Notice: outputs.upToDateWhen {false}
is not necessary but if not used, you need to run cleanTest
or clean
task before test
task.
For more info and options see the documentation.
For those using Kotlin/Kotlin DSL for Gradle, you need to put the following in your build.gradle.kts
file:
tasks.withType<Test> {
this.testLogging {
this.showStandardStreams = true
}
}
Also as mentioned in another answer, you will need to run gradle clean test
for the output to print every time.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With