Плагин вывода тестовых отчетов Junit5, есть ли другие лучшие альтернативы? Платформа Gradle или платформа maven

Я учусь использовать junit5. Я следовал руководству, чтобы написать несколько динамических тестов, а затем запустить их с помощью gradle. Но тестовый отчет, выводимый gradle по умолчанию, для меня недостаточно хорош, он не содержит вложенной структуры тестового контейнера. Есть ли альтернатива, которая может выводить отчет о тестировании лучшего формата при выполнении динамических тестов? Аналогично отчету об испытаниях интеллектуальных идей. код:

    @TestFactory
    Stream<DynamicNode> dynamicTestsWithContainers() {
        return Stream.of("A", "B", "C")
                .map({ input ->
                    dynamicContainer("Container " + input, Stream.of(
                            dynamicTest("not null", { -> assertNotNull(input) }) as DynamicNode,
                            dynamicContainer("properties", Stream.of(
                                    dynamicTest("length > 0", { -> assertTrue(input.length() > 0) }),
                                    dynamicTest("not empty", { -> assertFalse(input.isEmpty()) })
                            ))
                    ))
                })
    }

запустить с помощью Gradle:

html-отчет отчет в формате XML

бегите с интеллектуальной идеей:

интеллектуальный отчет об идеях


person 两极化    schedule 28.10.2019    source источник


Ответы (1)


Как я выяснил, maven-surefire-plugin начиная с версии 3.0.0 поддерживает улучшенную отчетность для JUnit5 с использованием JUnit5Xml30StatelessReport. Пример использования приведен в документации:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>3.0.0-M4</version>
    <configuration>
        <testFailureIgnore>true</testFailureIgnore>
        <statelessTestsetReporter
            implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5Xml30StatelessReporter">
            <disable>false</disable>
            <version>3.0</version>
            <usePhrasedFileName>true</usePhrasedFileName>
            <usePhrasedTestSuiteClassName>true</usePhrasedTestSuiteClassName>
            <usePhrasedTestCaseClassName>true</usePhrasedTestCaseClassName>
            <usePhrasedTestCaseMethodName>true</usePhrasedTestCaseMethodName>
        </statelessTestsetReporter>
    </configuration>
 </plugin>

Этот генератор отчетов учитывает описания динамических тестов, когда параметры usePhrasedXXX установлены на true. Однако он по-прежнему не соблюдает вложенную структуру (все тескейсы находятся в плоском списке).

person Ivan Ponomarev    schedule 12.05.2020