使用JUNIT5和Surefire按标签执行Maven测试

i7uaboj4  于 2023-04-20  发布在  Maven
关注(0)|答案(1)|浏览(157)

我已经测试了这些测试,并通过 org.junit.jupiter.API 包中的@Tag注解标记了这些测试。
这就是pom.xml

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>3.0.0-M5</version>
            <configuration>
                <groups>one</groups>
            </configuration>
        </plugin>
    </plugins>
</build>
@Tag("one")
public class ReservationApiIT {
   // SOME TEST CODE
}

现在我想只执行标记为“one”的测试。当我用Intellj配置JUNIT时(* 而不是'CLASS'我使用'TAGS'*)它可以工作。然而,等效的 mvn 命令不起作用。
等效的maven命令是 mvn -Dgroups=one test 或?
但是我正在执行0个测试。
以前有人遇到过这个问题吗?

e5nqia27

e5nqia271#

默认情况下,Surefire插件将自动包含具有以下通配符模式的所有测试类:

  • “**/Test*.java”-包括其所有子目录和所有以“Test”开头的Java文件名。
  • “**/* Test.java”-包括其所有子目录和所有以“Test”结尾的Java文件名。
  • “**/* Tests.java”-包括其所有子目录和所有以“Tests”结尾的Java文件名。
  • “**/* TestCase.java”-包括它的所有子目录和所有以“TestCase”结尾的Java文件名。

您的测试类没有遵循默认的通配符模式。请重命名它或在插件配置中指定。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>3.0.0</version>
  <configuration>
    <includes>
      <include>ReservationApiIT.java</include>
    </includes>
  </configuration>
</plugin>

相关问题