Регистрация при тестировании через Gradle
При тестировании Gradle появляется для перенаправления stdout/stderr на project_dir/build/reports/tests/index.html
. Есть ли способ избежать этого перенаправления и вместо этого распечатать содержимое на консоли?
Дополнительная информация:
- Это проект Scala 2.9.1.
- Я использую slf4s для ведения журнала.
Ответы
Ответ 1
apply plugin : 'java'
test {
testLogging.showStandardStreams = true
}
http://gradle.org/docs/current/dsl/org.gradle.api.tasks.testing.Test.html
Для этого требуется текущая версия gradle. Я предполагаю, что тесты Scala выполняются в рамках тестовой задачи Java.
Ответ 2
Я также использую (testLogging.exceptionFormat = 'full'
):
test {
testLogging.showStandardStreams = true
testLogging.exceptionFormat = 'full'
}
Хорошо видеть больше из stacktrace
Ответ 3
Для файлов Android Gradle
Если вы находитесь в файле Android Gradle (если apply plugin: 'com.android.application'
находится вверху вашего файла build.gradle)
Затем вставьте это в build.gradle
// Test Logging
tasks.withType(Test) {
testLogging {
events "standardOut", "started", "passed", "skipped", "failed"
}
}
Для обычных файлов Gradle
Вставьте это в build.gradle
// Test Logging
test {
testLogging {
showStandardStreams = true
}
}
Ответ 4
Как ответил @roby:
добавив следующий код к вашему build.gradle
apply plugin : 'java'
test {
testLogging.showStandardStreams = true
}
Внимание!
Вам нужно запустить gradle test или build с добавленной командой clean
.
./gradlew clean test
or
./gradlew clean build
Надеюсь, что это работает.
Ответ 5
test {
testLogging.showStandardStreams = true
}
и
test {
testLogging {
showStandardStreams = true
}
}
также работает.
Ответ 6
Просто добавьте:
showStandardStreams = true
является сокращением для:
events = ["standard_out", "standard_error"]
Важно помнить об этом, смешивая обе записи следующим образом:
test {
testLogging {
showStandardStreams = true
events = ["passed", "failed", "skipped"]
}
}
приведет к отсутствию стандартного вывода, тогда как обратный порядок:
test {
testLogging {
events = ["passed", "failed", "skipped"]
showStandardStreams = true
}
}
добавит записи stdout в список, поэтому stdout будет работать.
Подробности смотрите в источнике.
Ответ 7
В моем случае я работал с Java и Spring-boot-starter-test.
У меня была та же проблема, и проблема была в том, что у меня не было никакого тестового движка.
Поэтому я добавляю один к зависимостям build.gradle, и он работает.
testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api',
version: dependencyVersion.junit5
testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: dependencyVersion.junit5