如何在junit 5 gradle测试报告中捕获stdout/stderr?

Max*_* Ng 4 junit gradle junit5

我的gradle项目使用junit 5,我试图让测试报告显示在我的构建服务器上.XML报告基本上看起来很好 - 它包含所有测试类和方法,但缺少测试方法中打印的stdout/stderr.只有一些CDATA包含测试元数据.

@Test
void testToString() {
    System.out.println("Hello world");
    ...
}
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

是否有设置告诉gradle插件捕获stdout/stderr?我环顾了一下http://junit.org/junit5/docs/current/user-guide/#running-tests-build但找不到任何内容.

我正在使用org.junit.platform:junit-platform-gradle-plugin:1.0.0-M3org.junit.jupiter:junit-jupiter-{api,engine}:5.0.0-M3.

Sam*_*nen 5

正如Marc Philipp所提到的,目前不支持在JUnit 5中捕获输出到STDERR或STDOUT,无论是在平台还是在Jupiter中.

如果你想要这样的功能,请在这里提出一个问题:https://github.com/junit-team/junit5/issues

更新(2017.11.01)

仅供参考:作为概念验证,我将基于JUnit 4的OutputCapture规则从Spring Boot 移植到JUnit Jupiter:https://github.com/sbrannen/junit5-demo/blob/master/src/test/java/extensions/CaptureSystemOutput的.java