默认情况下,Surefire 插件会自动包含所有具有以下通配符模式的测试类:
如果测试类不符合命名约定,则配置 Surefire 插件并指定要包含的测试。
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.9</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-surefire-plugin</artifactId>
<version>2.9</version>
<configuration>
<excludes>
<exclude>**/TestCircle.java</exclude>
<exclude>**/TestSquare.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>包含/排除模式可以是 ant 样式的路径表达式,但此语法也支持正则表达式:
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.9</version>
<configuration>
<includes>
<include>%regex[.*[Cat|Dog].*Test.*]</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>注意语法 %regex[expr],其中 expr 是实际的表达式,其余的只是包装。另请注意,正则表达式匹配是通过 .class 文件而不是 .java 文件完成的。