【问题标题】:Junit5's test report output plugin, are there any other better alternatives? Gradle platform or maven platformJunit5的测试报告输出插件,还有其他更好的选择吗? Gradle 平台或 maven 平台
【发布时间】:2019-10-28 01:10:52
【问题描述】:

我正在学习使用junit5。 我按照教程编写了一些动态测试,然后使用 gradle 运行它们。但是gradle默认输出的测试报告对我来说不够好,它不包含嵌套的测试容器结构。在运行动态测试时,是否有任何替代方法可以输出格式更好的测试报告?类似于intellijidea测试报告。 代码:

    @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 report xml report

使用 intellij idea 运行:

intellij idea report

【问题讨论】:

    标签: maven gradle junit5


    【解决方案1】:

    我发现,maven-surefire-plugin 从 3.0.0 版开始支持使用 JUnit5Xml30StatelessReport 更好地报告 JUnit5。用法示例在documentation中给出:

    <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 时,本报告者尊重动态测试描述。但是,它仍然不尊重嵌套结构(所有 tescase 都在一个平面列表中)。

    【讨论】:

      猜你喜欢
      • 2011-01-02
      • 2011-03-19
      • 1970-01-01
      • 2011-04-21
      • 1970-01-01
      • 2011-08-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多