1.maven-surefire-plugin简介:
Maven在构件时执行到测试的生命周期时,会使用maven-surefire-plugin运行测试用例,背后执行的Junit或者TestNG的测试框架。
在默认情况下,maven-surefire-plugin的test目标会自动执行测试源码路径(默认为src/java/test/)下所有符合一组命名模式的测试类。
这组模式为:
- **/Test*.java:任何子目录下的所有命名以Test开头的Java类
- **/*Test.java:任何子目录下所有命名以Test结尾的Java类
- **/*Tests.java:任何子目录下所有命名以Tests结尾的Java类
- **/*TestCase.java:任何子目录下所有命名以TestCase结尾的Java类
只要将测试类按上述模式命名,Maven就能自动运行它们,用户也就不需要定义测试集合(TestSuite)来聚合测试用例(TestCase)。
重用测试代码:
默认Maven的打包行为不会把测试代码打在包里,但是在项目内部重用某个模块的测试代码是很常见的需求,
比如在某个底层模块的测试代码中包含了一些常用的测试工具类,或者一些高质量的测试基类供继承。
这时我们需要修改maven打包的默认行为:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.2</version> <executions> <execution> <phase>package</phase> <goals> <goal>jar</goal> <goal>test-jar</goal> </goals> </execution> </executions> </plugin>
通过以上代码,启用了maven-jar-plugin的test-jar目标,而该目标默认绑定在package阶段。