Как записать stdout/stderr в отчёт о тестировании в gradle на junit 5?

Мой 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/, но не смог найти ни одного.

я использую org.junit.platform:junit-platform-gradle-plugin:1.0.0-M3 а также org.junit.jupiter:junit-jupiter-{api,engine}:5.0.0-M3,

1 ответ

Решение

Как отметил Марк Филипп, в настоящее время отсутствует поддержка захвата выходных данных в STDERR или STDOUT в JUnit 5, ни в Платформе, ни в Юпитере.

Если вам нужна такая функция, пожалуйста, поднимите вопрос здесь: 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

Другие вопросы по тегам