(Gradle 3.2.1) Je lance quelques tests Java, qui enregistre la sortie dans Stderr/Stdout. Je peux voir cette sortie, si je démarre
gradle test --info
mais dans ce cas, une grande partie de la sortie indésirable des bibliothèques tierces est également présente.
Documentation suggère d'utiliser logging.caputureStandardError / logging.caputureStandardError (loglevel)
, mais cela ne semble pas avoir d'effet.
tasks.withType(Test) {
logging.captureStandardOutput LogLevel.QUIET
logging.captureStandardError LogLevel.QUIET
}
Ensuite, si vous exécutez gradle test
, STDERR/STDOUT n'est pas affiché dans la console.
Comment puis-je obtenir uniquement la sortie des classes de tests dans la console?
Ajoutez ces lignes à build.gradle
:
apply plugin: 'Java'
test {
dependsOn cleanTest
testLogging.showStandardStreams = true
}
Remarquer: dependsOn cleanTest
n'est pas nécessaire mais s'il n'est pas utilisé, vous devez exécuter cleanTest
ou clean
tâche avant test
tâche.
Une meilleure approche:
apply plugin: 'Java'
test {
testLogging {
outputs.upToDateWhen {false}
showStandardStreams = true
}
}
Remarquer: outputs.upToDateWhen {false}
n'est pas nécessaire mais s'il n'est pas utilisé, vous devez exécuter cleanTest
ou clean
tâche avant test
tâche.
Pour plus d'informations et d'options, voir la documentation .
Pour ceux qui utilisent kotlin/kotlin dsl pour gradle, vous devez mettre ce qui suit dans votre fichier build.grade.kts:
tasks.withType<Test> {
this.testLogging {
this.showStandardStreams = true
}
}
De plus, comme mentionné dans une autre réponse, vous devrez exécuter un "test de nettoyage progressif" pour que la sortie s'imprime à chaque fois.