有没有办法使用 Surefire 排除测试方法级别的测试 - 而不是类级别?

haw*_*eye 6 junit unit-testing maven maven-surefire-plugin

Apache Maven Surefire 站点具有以下示例语法来排除测试运行:

<configuration>
  <excludes>
    <exclude>**/TestCircle.java</exclude>
    <exclude>**/TestSquare.java</exclude>
  </excludes>
</configuration>
Run Code Online (Sandbox Code Playgroud)

这会排除类,但如果您要排除的测试位于具有一堆其他测试的类中 - 那么该类中的每个测试都将被排除,无论您是否只想排除一个测试。

这看起来不是很细粒度。我想从具有多个测试的类中仅排除一个测试。

我的问题是:有没有办法使用 Surefire 排除测试方法级别的测试 - 而不是类级别?

Mat*_*ann 1

现在是 2023 年,答案是:可以。

使用 with property excludesFile,您可以引用包含排除模式的文件,正如文档所说,

从 3.0.0-M6 开始,排除文件中也提供了方法过滤支持,例如

文件exclusiveTests.txt:

pkg.SomeTest#testMethod
Run Code Online (Sandbox Code Playgroud)

例如,在<configuration>您需要添加的部分中

pkg.SomeTest#testMethod
Run Code Online (Sandbox Code Playgroud)

并且在执行过程中,不会调用 testMethod。