2017-04-01 2 views
3

Mein Google-Projekt verwendet Junit 5 und ich versuche, die Testberichte auf meinem Build-Server erscheinen zu lassen. Der XML-Bericht sieht grundsätzlich gut aus - er enthält alle Testklassen und -methoden, aber es fehlt stdout/stderr, die in Testmethoden gedruckt werden. Es gibt nur einige CDATA mit Testmetadaten.Wie kann ich stdout/stderr im junit 5 Gradle Testbericht erfassen?

@Test 
void testToString() { 
    System.out.println("Hello world"); 
    ... 
} 

XML-Report:

<testcase name="testToString()" classname="com.my.company.PairsTest" time="0.008"> 
<system-out><![CDATA[ 
unique-id: [engine:junit-jupiter]/[class:com.my.company.PairsTest]/[method:testToString()] 
display-name: testToString() 
]]></system-out> 
</testcase> 

Gibt es eine Einstellung, die gradle Plugin zu sagen stdout/stderr zu erfassen? Ich schaute mich um http://junit.org/junit5/docs/current/user-guide/#running-tests-build, konnte aber keine finden.

Ich verwende org.junit.platform:junit-platform-gradle-plugin:1.0.0-M3 und org.junit.jupiter:junit-jupiter-{api,engine}:5.0.0-M3.

+0

Ausgabe auf stdout/stderr wird derzeit nicht erfasst. Können Sie stattdessen den TestReporter verwenden? https://github.com/junit-team/junit5/blob/master/documentation/src/test/java/example/TestReporterDemo.java –

+0

Die meisten von stdout/stderr werden durch den Code erzeugt, der geprüft wird, also tun sie nicht in der Lage sein, TestReporter zu verwenden. –

+0

(Rückkehr zu früh) @MarcPhilipp wird es Pläne geben, die Aufnahme von stdout/stderr in junit zu unterstützen, oder sollte ich irgendwo einen Feature-Vorschlag oder eine PR einreichen? IMO die Ausgabe ist sehr nützlich für das Verständnis von Testfehlern auf CI-Servern, insb. wenn die Fehler lokal nicht reproduzierbar sind. –

Antwort

5

Wie Marc Philipp erwähnte, gibt es zur Zeit keine Unterstützung für die Erfassung der Ausgabe von STDERR oder STDOUT in JUnit 5, weder in der Plattform noch in Jupiter.

Wenn Sie ein solches Feature möchten, heben Sie bitte hier ein Problem aufgetreten: https://github.com/junit-team/junit5/issues

aktualisieren (2017.11.01)

FYI: als Proof of Concept, portiert ich die JUnit 4 basierend OutputCapture Regel von Spring Boot zu JUnit Jupiter hier: https://github.com/sbrannen/junit5-demo/blob/master/src/test/java/extensions/CaptureSystemOutput.java

+0

Danke, ich habe angesprochen https://github.com/junit-team/junit5/issues/780 –

+0

Danke, dass Sie das Problem angesprochen haben. –

+0

FYI: Ich habe die Antwort aktualisiert, um auf meinen Port der Spring Boot 'OutputCapture'-Regel zu zeigen. –

Verwandte Themen