maven - Junit5的测试报告输出插件,还有其他更好的选择吗?Gradle 平台或 maven 平台
问题描述
我正在学习使用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 运行:
使用intellij理念运行:
解决方案
正如我发现的那样,maven-surefire-plugin
由于版本 3.0.0 支持使用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
。但是,它仍然不尊重嵌套结构(所有 tescase 都在一个平面列表中)。
推荐阅读
- sql - 具有多个过滤器的一对多关系的 SQL 查询
- python - 如何在不使用转储的情况下在 python 中编写 json 文件
- r - R - 以其他 2 列为条件的几列之间的 T 检验
- validation - gsutil 是否在云传输中进行验证?
- python - 在从 Qt 调用的 python 脚本中导入 opencv 崩溃
- vue.js - process.env.NODE_ENV 不适用于 webpack3
- css - CSS3 淡入不淡出 - 一种方式过渡
- java - 在 JSON HTTP 响应中查找值
- jquery - Google 开发工具控制台中的 jQuery 错误
- python - Pandas merge_asof() 产生 «'NoneType' object is not callable» 错误