JUnit平台附带的Console Launcher(来自JUnit 5)最终产生了一个非常好的摘要视图。但是,Maven Surefire插件的输出非常简单。
是否可以使用类似于启动创建的Surefire输出创建?
答案 0 :(得分:3)
我当前的解决方法是禁用surefire并使用exec-maven-plugin
手动运行ConsoleLauncher
:
<!-- disable surefire -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version><!-- ... --></version>
<executions>
<execution>
<id>default-test</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
<!-- enable ConsoleLauncher -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version><!-- ... --></version>
<executions>
<execution>
<phase>test</phase>
<goals><goal>java</goal></goals>
<configuration>
<mainClass>org.junit.platform.console.ConsoleLauncher</mainClass>
<arguments>
<argument>--scan-class-path</argument>
<argument>${project.build.directory}/test-classes</argument>
</arguments>
<classpathScope>test</classpathScope>
</configuration>
</execution>
</executions>
</plugin>
<!-- ... -->
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-console-standalone</artifactId>
<version><!-- ... --></version>
<scope>test</scope>
</dependency>
答案 1 :(得分:1)
当前,Surefire是针对嵌入式Surefire功能的开发扩展1,以及一个支持JUnit5 DisplayName的独立扩展。 这些扩展之一是测试集信息的控制台记录器。这样一来,与2中控制台的输出也非常相似。
扩展是一组Java抽象,Surefire / Failsafe插件将包含这些抽象的默认实现。其他渐进式扩展实现(如2中的输出)将要求用户支持Surefire项目,以在自己的GitHub存储库中(而不是在ASF中)实现扩展。欢迎Surefire在ASF Maven Surefire网页上列出这些扩展的所有第三方实现。
通过这种方式(开放式封闭式DP),我们相信我们将为您提供一定的自由来更改插件的行为,而无需报告真正的Jira问题,也无需等待新功能发布。
答案 2 :(得分:0)
不确定
随意打开功能请求以扩展https://issues.apache.org/jira/projects/SUREFIRE/issue的当前摘要输出,并可能针对https://github.com/apache/maven-surefire提取请求; - )