Während des Testens scheint Gradle stdout / stderr umzuleiten project_dir/build/reports/tests/index.html
. Gibt es eine Möglichkeit, diese Umleitung zu vermeiden und stattdessen Dinge auf die Konsole zu drucken?
Zusätzliche Information:
- Es ist ein Scala 2.9.1-Projekt.
- Ich benutze slf4s für die Protokollierung.
$ gradle clean test
oder verwenden . Einzelheiten finden Sie in den Dokumenten .outputs.upToDateWhen {false}
testLogging
test { testLogging { outputs...
Ich benutze auch (
testLogging.exceptionFormat = 'full'
):test { testLogging.showStandardStreams = true testLogging.exceptionFormat = 'full' }
Welches ist gut, um mehr von Stacktrace zu sehen
quelle
exceptionFormat
Einstellung hat bei mir funktioniert,showStandardStreams
hatte keine Wirkung!Als @roby antwortete:
Hinzufügen des folgenden Codes zu Ihrem
build.gradle
apply plugin : 'java' test { testLogging.showStandardStreams = true }
Wichtig!
Sie müssen den Gradle-Test ausführen oder mit einem hinzugefügten
clean
Befehl erstellen ../gradlew clean test or ./gradlew clean build
Hoffe das funktioniert.
quelle
Für Android Gradle-Dateien
Wenn Sie sich in einer Android-Gradle-Datei befinden (wenn sie
apply plugin: 'com.android.application'
sich oben in Ihrer build.gradle-Datei befindet)Fügen Sie dies dann in build.gradle ein
// Test Logging tasks.withType(Test) { testLogging { events "standardOut", "started", "passed", "skipped", "failed" } }
Für reguläre Gradle-Dateien
Fügen Sie dies in build.gradle ein
// Test Logging test { testLogging { showStandardStreams = true } }
quelle
test { testLogging.showStandardStreams = true }
und
test { testLogging { showStandardStreams = true } }
funktioniert auch.
quelle
Nur um hinzuzufügen, die:
showStandardStreams = true
ist eine Abkürzung für:
events = ["standard_out", "standard_error"]
Es ist wichtig, dies zu berücksichtigen, wenn Sie beide Einträge wie folgt mischen:
test { testLogging { showStandardStreams = true events = ["passed", "failed", "skipped"] } }
führt zu keinem Standard, während die umgekehrte Reihenfolge:
test { testLogging { events = ["passed", "failed", "skipped"] showStandardStreams = true } }
fügt die stdout-Einträge zur Liste hinzu, damit stdout funktioniert .
Einzelheiten finden Sie in der Quelle .
quelle
showStandardStreams
die Bestellung an zweiter Stelle steht, werden die Standard-Streams an die Ereignisliste angehängt , um dies noch einmal zu überprüfen ? Es scheint so, aber nur eine doppelte Überprüfung.Wenn Sie Kotlin DSL mit
build.gradle.kts
der Syntax verwenden, ist das etwas anders.Stellen Sie sicher, dass Sie den Junit in Ihren Abhängigkeiten haben:
dependencies { testImplementation("org.junit.jupiter:junit-jupiter:5.4.2") testImplementation("org.junit.jupiter:junit-jupiter-api") testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine") }
Dann müssen Sie Ihrer Testaufgabe hinzufügen:
import org.gradle.api.tasks.testing.logging.TestExceptionFormat tasks.test { useJUnitPlatform() testLogging { showStandardStreams = true exceptionFormat = TestExceptionFormat.FULL events("skipped", "failed") } }
Anschließend können Sie die Einstellungen an Ihre Bedürfnisse anpassen.
quelle
In meinem Fall habe ich mit Java und Spring-Boot-Starter-Test gearbeitet.
Ich hatte das gleiche Problem und das Problem war, dass ich keine Testmaschine hatte.
Also füge ich eine zu den Abhängigkeiten von build.gradle hinzu und es hat Arbeit.
quelle
./gradlew --info clean build test
Mit
--stacktrace
Option ausführen, um den Stack-Trace abzurufen. Führen Sie mit--info
oder die--debug
Option aus, um mehr Protokollausgabe zu erhalten. Laufen Sie mit--scan
, um vollständige Einblicke zu erhalten.quelle