Gradle: Как получить выход из теста STDERR/STDOUT в консоль?
(Gradle 3.2.1) Я запускаю некоторые java-тесты, которые регистрируют вывод в Stderr/Stdout. Я могу видеть этот вывод, если я запустил
gradle test --info
но в этом случае большая часть нежелательного вывода из 3-х партийных библиотек тоже есть.
Документация предлагает использовать logging.caputureStandardError / logging.caputureStandardError (loglevel)
, но, похоже, это не имеет никакого эффекта.
tasks.withType(Test) {
logging.captureStandardOutput LogLevel.QUIET
logging.captureStandardError LogLevel.QUIET
}
Затем, если выполняется gradle test
, в консоли не выводится STDERR/STDOUT.
Как я могу получить только результат из классов тестов в консоли?
Ответы
Ответ 1
Добавьте эти строки в 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
.
Для получения дополнительной информации и параметров см. документацию.
Ответ 2
Для тех, кто использует Kotlin/Kotlin DSL для Gradle, вам необходимо добавить в файл build.gradle.kts
следующее:
tasks.withType<Test> {
this.testLogging {
this.showStandardStreams = true
}
}
Также, как упоминалось в другом ответе, вам нужно будет запустить gradle clean test
, чтобы вывод выводился каждый раз.