1. maven-surefire-plugin
该插件的test目标会自动执行测试源码路径,默认为src/test/java下负荷下列命名模式的测试类:
(1) **/Test*.java:任何目录下所有命名以Test开头的Java类;
(2) **/*Test.java:任何子目录下所有命名以Test结尾的Java类;
(3) **/*TestCase.java:热河子目录下所有以TestCase结尾的Java类。
2. 跳过测试
(1) 命令行
mvn pacage -DskipTests
(2) XML配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surfire-plugin</artifactId>
<version>2.5</version>
<confuguration>
<skipTests>true</shipTests>
</configuration>
</plugin>
3. 跳过测试代码的编译和测试
(1) 命令行:mvn package -Dmaven.test.skip=true
(2) XML配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compile-plugin</artifactId>
<version>2.1</version>
<confuguration>
<skip>true</ship>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surfire-plugin</artifactId>
<version>2.5</version>
<confuguration>
<skip>true</ship>
</configuration>
</plugin>
4. 动态指定要运行的测试类
mvn test -Dtest=RandomTest
mvn test -Dtest=Rando*Test
mvn test -Dtest=Rando*Test, User*Test
若没有任何测试类,可加上下面的参数概述Maven即使没有测试类也不要报错:
mvn -test -Dtest -DfailIfNoTests=false
5. 包含于排除测试用例
(1) 自动运行以Tests结尾的测试类
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surfire-plugin</artifactId>
<version>2.5</version>
<confuguration>
<includes>
<include>**/*Tests.java</include>
</includes>
</configuration>
</plugin>
(2) 排除运行测试类
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surfire-plugin</artifactId>
<version>2.5</version>
<confuguration>
<excludes>
<exclude>**/ServiceTest1.java</include>
<exclude>**/ServiceTest2.java</include>
</excludes>
</configuration>
</plugin>
6. 测试覆盖率报告
使用下面命令生成简单的报告:
mvn cobertura:cobertura
生成的报告位于工程的target/site/cobura/index.html
7. 重用测试代码
maven-jar-plugin有两个目标:jar和test-jar,其中jar目标内置绑定在default生命周期的package阶段执行,
对项目主代码进行打包,而test-jar用来打包测试代码,配置为:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<goals>test-jar</ goals >
</ execution >
</executions>
</plugin>
依赖测试包构件:
<dependency>
<groupId>org.dmwdp.web</groupId>
<artifactId>web-test</artifactId>
<version>1.0.0</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>