使用Surefire生成树输出,如JUnit 5控制台启动器

时间:2018-06-06 14:26:05

标签: java junit5

JUnit平台附带的Console Launcher(来自JUnit 5)最终产生了一个非常好的摘要视图。但是,Maven Surefire插件的输出非常简单。

是否可以使用类似于启动创建的Surefire输出创建?

3 个答案:

答案 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提取请求; - )