Maven编译打包时怎么忽略测试用例
如果想跳过测试阶段,可用:
mvn package -DskipTests
想临时性跳过测试代码的编译,可用:
mvn package -Dmaven.test.skip=true
maven.test.skip同时控制maven-compiler-plugin和maven-surefire-plugin两个插件的行为,即跳过编译,又跳过测试。
指定测试类
mvn test -Dtest=RandomGeneratorTest
以Random开头,Test结尾的测试类
mvn test -Dtest=Random*Test
用逗号分隔指定多个测试用例
mvn test -Dtest=ATest,BTest
test参数必须匹配至少一个测试类,否则会报错并导致构建失败。此时可使用以下配置来指定即使没有任何测试用例也不要报错。
mvn test -Dtest -DfailIfNoTests = false
POM文件配置包含与排除测试用例,使用** / * Test.java 来匹配所有以Tests结尾的Java类。两个星号**用来匹配任意路径,一个星号*用来获取除路径风格符外的0个或多个字符。还可使用excludes来排除一些测试类。
<plugin>
<groupId>org.apahce.maven.plugins<groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<includes>
<include>**/*Tests.java</include>
</includes>
</configuration>
</plugin>
这个参数控制的是test插件的行为,不可能控制compiler插件。根据文档说明,maven.test.skip即不会编译测试类,也不会去执行。而maven.test.skipTests则是会编译测试类的,只不过不执行而已,因此,你的第一段的讲法也是错的。