web-dev-qa-db-fra.com

Journalisation pendant les tests via Gradle

Pendant les tests, Gradle semble rediriger stdout/stderr vers project_dir/build/reports/tests/index.html. Existe-t-il un moyen d'éviter cette redirection et d'obtenir des éléments imprimés sur la console?

Information additionnelle:

  • C'est un projet Scala 2.9.1.
  • J'utilise slf4s pour la journalisation.
62
missingfaktor
apply plugin : 'Java'

test {
    testLogging.showStandardStreams = true
}

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

Cela nécessite une version Gradle actuelle. Je suppose que les tests Scala sont exécutés sous la tâche de test Java.

77
roby

J'utilise également (testLogging.exceptionFormat = 'full'):

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

Ce qui est bien de voir plus de stacktrace

17
To Kra

Pour Android Gradle Files

Si vous êtes à l'intérieur d'un fichier de gradle Android (si apply plugin: 'com.Android.application' est en haut de votre fichier build.gradle)

Collez-le ensuite dans build.gradle

// Test Logging
tasks.withType(Test) {
    testLogging {
        events "standardOut", "started", "passed", "skipped", "failed"
    }
}

Pour les fichiers Gradle réguliers

Collez-le dans build.gradle

// Test Logging
test {
    testLogging {
        showStandardStreams = true
    }
}
16
joshuakcockrell

Comme @ roby a répondu:

en ajoutant le code suivant à votre build.gradle

apply plugin : 'Java'

test {
    testLogging.showStandardStreams = true
}

Important !

Vous devez exécuter le test gradle ou construire avec la commande clean ajoutée.

./gradlew clean test

or

./gradlew clean build

J'espère que cela fonctionne.

15
nmfzone
test {
    testLogging.showStandardStreams = true
}

et

test {
    testLogging {
        showStandardStreams = true
    }
}

fonctionne également.

8
zhouji

Juste pour ajouter, le:

showStandardStreams = true

est un raccourci pour:

events = ["standard_out", "standard_error"]

Il est important de garder cela à l'esprit lors du mélange des deux entrées comme suit:

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

n'entraînera aucune sortie standard alors que l'ordre inverse:

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

ajoutera les entrées stdout à la liste, donc stdout fonctionnera .

Voir la source pour plus de détails.

5
Johnny Baloney