测试的包含和排除
夹杂物
默认情况下,Failsafe Plugin 将自动包含所有具有以下通配符模式的测试类:
- “**/IT*.java” - 包括其所有子目录和所有以“IT”开头的 java 文件名。
- “**/*IT.java” - 包括其所有子目录和所有以“IT”结尾的 java 文件名。
- “**/*ITCase.java” - 包括其所有子目录和所有以“ITCase”结尾的 java 文件名。
如果测试类不符合命名约定,则配置故障安全插件并指定要包含的测试。
<project> [...] <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <version>2.11</version> <configuration> <includes> <include>Sample.java</include> </includes> </configuration> </plugin> </plugins> </build> [...] </project>
排除项
有时某些测试会导致构建失败。排除它们是继续构建的最佳解决方法之一。可以通过配置插件的excludes属性来完成排除。
<project> [...] <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <version>2.11</version> <configuration> <excludes> <exclude>**/CircleIT.java</exclude> <exclude>**/SquareIT.java</exclude> </excludes> </configuration> </plugin> </plugins> </build> [...] </project>
正则表达式支持
包含/排除模式可以是 ant 样式的路径表达式,但此语法也支持正则表达式:
<project> [...] <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <version>2.11</version> <configuration> <includes> <include>%regex[.*[Cat|Dog].*Test.*]</include> </includes> </configuration> </plugin> </plugins> </build> [...] </project>
注意语法 %regex[expr],其中 expr 是实际的表达式,其余的只是包装。另请注意,正则表达式匹配是通过 .class 文件而不是 .java 文件完成的。