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

6

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

@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插件捕获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

标准输出/错误输出目前未被捕获。你能否切换到使用TestReporter?https://github.com/junit-team/junit5/blob/master/documentation/src/test/java/example/TestReporterDemo.java - Marc Philipp
大多数的stdout/stderr都是由测试代码生成的,因此它们不能使用TestReporter。 - Max Ng
@MarcPhilipp,是否有计划支持在JUnit中捕获stdout/stderr,或者我应该在哪里提交功能建议或PR?在CI服务器上理解测试失败非常有用,特别是如果本地无法重现故障。 - Max Ng
1个回答

5

感谢您提出这个问题。 - Sam Brannen
请注意:我更新了答案,指向了我对Spring Boot“OutputCapture”规则的端口。 - Sam Brannen
CaptureSystemOutput.java正在执行任务。 - Maksim Kostromin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接