我们用maven来管理一个项目,只要将测试类放在src/test/java里,默认 mvn package 的时候就会去执行里面的testcase. 这其实是由于maven默认会去用maven-surefire-plugin这个插件。
假设我们用junit3来编写我们的测试用例,只要在src/test/java里放置了以Test结尾的java,当mvn package的时候就去自动去执行这些java里的以test开头的方法了。这是由于maven-surefire-plugin里有默认的寻找tesecase的规则就有这些。
但是当我们要定制一些规则,比如屏蔽一些testcase不去执行他,就一定要自己定制好maven-surefire-plugin这个插件在build里,如下配置,我们只跑com.zhouxiaobo.util包下的testcase,而其他包下的testcase就不跑了,当然也还可以定义 excludes。
<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.7.1</version> <configuration> <includes> <include>com/zhouxiaobo/util/*Test.java</include> <!-- <include>com/zhouxiaobo/util2/*Test.java</include> --> </includes> </configuration> </plugin> </plugins>
我们也可以在这里直接配置跳过该pom在在项目的所有test,
<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin> </plugins>
当然我们也可以在mvn执行的时候跳过所有的test, 只要在命令中加上 -Dmaven.test.skip=true, 例如 mvn install -Dmaven.test.skip=true