在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。
有没有办法从文件中加载排除列表?
答案 0 :(得分:3)
Surefire插件为此提供了完整的配置元素,称为excludesFile
:
包含排除模式的文件。空行或以
#
开头的行将被忽略。如果还指定了excludes
,则会附加这些模式。路径,简单和正则表达式的示例排除:*/test/*
**/DontRunTest.*
%regex[.*Test.*|.*Not.*]
它是作为SUREFIRE-1065和SUREFIRE-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
也存在相反的要求。