有没有办法从文件加载Maven Surefire插件排除列表?

时间:2017-01-13 22:59:22

标签: java maven maven-surefire-plugin

在Surefire插件中,您有exclusions个文件列表(或正则表达式),如下所示:

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.19.1</version>
        <configuration>
          <excludes>
            <exclude>**/TestCircle.java</exclude>
            <exclude>**/TestSquare.java</exclude>
          </excludes>
        </configuration>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

我想在我的排除列表中添加一堆与正则表达式不匹配的文件。这个列表大约有200个文件(一个古怪的集合)。我想从Maven pom.xml外部的文件中添加这些文件。

我认为有a way使用maven属性插件执行此操作。我无法看到它会如何加载variable into a list

有没有办法从文件中加载排除列表?

1 个答案:

答案 0 :(得分:3)

Surefire插件为此提供了完整的配置元素,称为excludesFile

  

包含排除模式的文件。空行或以#开头的行将被忽略。如果还指定了excludes,则会附加这些模式。路径,简单和正则表达式的示例排除:   */test/*
  **/DontRunTest.*
  %regex[.*Test.*|.*Not.*]

它是作为SUREFIRE-1065SUREFIRE-1134的一部分在插件的2.19版中引入的。因此,您可以直接在项目的基本目录中有一个名为surefireExcludes.txt的文件,其中包含

**/TestCircle.java
**/TestSquare.java
# **/TestRectangle.java A commented-out pattern

然后使用以下命令配置插件:

<plugin>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.19.1</version>
  <configuration>
    <excludesFile>surefireExcludes.txt</excludesFile>
  </configuration>
</plugin>

除了匹配文件中指定的模式的测试外,所有测试都将运行。如果模式以#开头,则可以对模式进行注释。这也可以直接在命令行上使用surefire.excludesFile用户属性传递,即:

mvn clean test -Dsurefire.excludesFile=surefireExcludes.txt

参数includesFile也存在相反的要求。