Ведение журнала во время тестирования через Gradle - PullRequest
61 голосов
/ 20 февраля 2012

При тестировании Gradle перенаправляет stdout / stderr на project_dir/build/reports/tests/index.html.Есть ли способ избежать этого перенаправления и вместо этого печатать на консоли?

Дополнительная информация:

  • Это проект Scala 2.9.1.
  • Я использую slf4s для ведения журнала.

Ответы [ 6 ]

77 голосов
/ 20 февраля 2012
apply plugin : 'java'

test {
    testLogging.showStandardStreams = true
}

http://gradle.org/docs/current/dsl/org.gradle.api.tasks.testing.Test.html

Для этого требуется текущая версия Gradle.Я предполагаю, что тесты Scala выполняются под тестовой задачей Java.

17 голосов
/ 17 февраля 2016

Я также использую (testLogging.exceptionFormat = 'full'):

test {
    testLogging.showStandardStreams = true
    testLogging.exceptionFormat = 'full'
}

Что приятно видеть больше от stacktrace

15 голосов
/ 23 февраля 2017

Для файлов Gradle для Android

Если вы находитесь внутри файла 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
    }
}
15 голосов
/ 11 мая 2016

Как @ roby ответил:

добавив следующий код к вашему build.gradle

apply plugin : 'java'

test {
    testLogging.showStandardStreams = true
}

Внимание!

Вам нужно запустить gradle test или build с добавленной командой clean.

./gradlew clean test

or

./gradlew clean build

Надеюсь, что это работает.

8 голосов
/ 31 октября 2016
test {
    testLogging.showStandardStreams = true
}

и

test {
    testLogging {
        showStandardStreams = true
    }
}

также работает.

5 голосов
/ 09 февраля 2018

Просто добавьте:

showStandardStreams = true

является сокращением для:

events = ["standard_out", "standard_error"]

Важно помнить об этом, смешивая обе записи следующим образом:

test {
    testLogging {
        showStandardStreams = true
        events = ["passed", "failed", "skipped"]
    }
}

приведет к без stdout , тогда как обратный порядок:

test {
    testLogging {
        events = ["passed", "failed", "skipped"]
        showStandardStreams = true
    }
}

добавит записи stdout в список, поэтому stdout будет работать .

Подробнее см. источник .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...