Junit5和x27;s测试报告输出插件,还有其他更好的选择吗?Gradle平台或maven平台

Junit5和x27;s测试报告输出插件,还有其他更好的选择吗?Gradle平台或maven平台,maven,gradle,junit5,Maven,Gradle,Junit5,我正在学习使用junit5。 我按照教程编写了一些动态测试,然后使用gradle运行它们。但是gradle默认输出的测试报告对我来说不够好,它不包含嵌套的测试容器结构。在运行动态测试时,是否有其他方法可以输出格式更好的测试报告?与intellij idea测试报告类似。 代码: @TestFactory Stream<DynamicNode> dynamicTestsWithContainers() { return Stream.of("A", "B

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

    @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()) })
                            ))
                    ))
                })
    }

@TestFactory
流动态测试swithcontainers(){
返回流(“A”、“B”、“C”)
.map({input->
dynamicContainer(“容器”+输入,流(
dynamicTest(“notnull”,{->assertNotNull(输入)})作为DynamicNode,
dynamicContainer(“属性”,Stream.of(
dynamicTest(“长度>0”,{->assertTrue(input.length()>0)}),
dynamicTest(“非空”,{->assertFalse(input.isEmpty())})
))
))
})
}
与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()) })
                            ))
                    ))
                })
    }

使用intellij idea运行:

    @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()) })
                            ))
                    ))
                })
    }


我发现,
maven surefire插件
自3.0.0版以来,使用
JUnit5Xml30StatelessReport
为JUnit5提供了更好的报告功能。使用示例如所示:


org.apache.maven.plugins
maven surefire插件
3.0.0-M4
真的
假的
3
真的
真的
真的
真的

usePhrasedXXX
参数设置为
true
时,本报告者尊重动态测试描述。但是,它仍然不尊重嵌套结构(所有的TESCASE都在一个平面列表中)。

我发现,
maven surefire插件
,因为3.0.0版支持使用
JUnit5Xml30StatelessReport更好地报告JUnit5。使用示例如所示:


org.apache.maven.plugins
maven surefire插件
3.0.0-M4
真的
假的
3
真的
真的
真的
真的
usePhrasedXXX
参数设置为
true
时,本报告者尊重动态测试描述。但是,它仍然不考虑嵌套结构(所有的特例都在一个平面列表中)