我的gradle項目使用junit 5,我試圖讓測試報告顯示在我的構建服務器上。 XML報告基本上看起來很好 - 它包含了所有的測試類和方法,但缺少在測試方法中打印的stdout/stderr。只有一些包含測試元數據的CDATA。如何在junit 5 gradle測試報告中捕獲stdout/stderr?
@Test
void testToString() {
System.out.println("Hello world");
...
}
XML報告:
<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>
有沒有設置告訴gradle這個插件捕捉到標準輸出/標準錯誤?我看了看周圍http://junit.org/junit5/docs/current/user-guide/#running-tests-build,但找不到任何。
我使用的是org.junit.platform:junit-platform-gradle-plugin:1.0.0-M3
和org.junit.jupiter:junit-jupiter-{api,engine}:5.0.0-M3
。
目前沒有捕獲到stdout/stderr的輸出。你能切換到使用TestReporter嗎? https://github.com/junit-team/junit5/blob/master/documentation/src/test/java/example/TestReporterDemo.java –
大部分stdout/stderr都是由正在測試的代碼生成的,所以它們不會能夠使用TestReporter。 –
(馬上返回)@MarcPhilipp會有計劃支持在junit中捕獲stdout/stderr,還是應該在某處提交功能建議或PR? IMO輸出對理解CI服務器上的測試故障非常有用,如果失敗不能在本地重現。 –