1.在maven中配置测试插件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
</plugin>
默认情况下Maven项目已经添加了这个插件,所以没有特殊需要不需要更改
2.默认情况下执行的测试
默认情况下surefire会执行文件名以Test开头或结尾,或者以TestCase结尾的类
"**/Test*.java" - includes all of its subdirectories and all java filenames that start with "Test".
"**/*Test.java" - includes all of its subdirectories and all java filenames that end with "Test".
"**/*TestCase.java" - includes all of its subdirectories and all java filenames that end with "TestCase".</span>
3.跳过测试
(1)命令方式
mvn package -DskipTests
打包时候跳过测试,可以换为install等
(2)插件配置方式
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
4.只执行一个/类测试
在开发中配置命令:
mvn test -Dtest=类名#方法名(可选)
类名不需要类全名,直接写简单名字就好
如果执行类中的所有方法,则直接将#方法名去掉即可
5.包含或排除测试
由于一些测试类名称不符合默认的三种命名方式,可以通过pom.xml设置surefire插件添加命名模式或者排除一些命名方式
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<includes>
<include>**/*Tests.java</include>
</includes>
<excludes>
<exclude>**/*ServiceTest.java</exclude>
<exclude>**/TempDaoTest.java</exclude>
</excludes>
</configuration>
</plugin>
6.控制进行测试的进程数量
maven运行测试用例时,是通过maven的surefire插件fork一个子进程来执行测试用例的。forkMode属性指明是要为每个测试单独创建一个进程,还是所有测试在同一个进程中完成
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkMode>pertest</forkMode>
</configuration>
</plugin>
forkMode可选值
(1)pretest:每个测试创建一个进程。速度最慢
(2)once:在一个进程中进行所有测试。once为默认值
(3)always:在一个进程中并行执行的测试线程数,必须和parallel配合使用,默认线程数为5
<forkMode>always</forkMode>
<parallel>methods</parallel>
<threadCount>4</threadCount>