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

标签 gradle junit junit5

我的 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 .

最佳答案

正如 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

关于gradle - 如何在junit 5 gradle测试报告中捕获stdout/stderr?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43151448/

相关文章:

java - 如何仅重新运行失败的测试? (我用的是junit5+maven+spring boot)

gradle - 如何在gradle中删除空目录(或递归地删除所有内容的目录)?

android - 使用隐藏的api构建Android项目的gradle:在某些构建环境中失败,而在其他构建环境中成功

intellij-idea - 在 IntelliJ 中使用 Spring 4.1 和 JUnit4 Runner 运行 JUnit Jupiter 测试

junit - Ant JUnit 未显示失败的测试详细信息

java - 如何在 JUnit 4 中编写assertTimeoutPreemptively (JUnit 5)?

kotlin - @Autowired 成员未在用 Kotlin 编写的 Junit 5 测试中初始化

java - 如何在 Netbeans 中调试具有 native 依赖项的 Gradle 项目?

java - 在Java/gradle/groovy中使用jira-rest-java-client Java库?

java - 在 IntelliJ 上运行测试时无法加载 messages.properties