Maven中-DskipTests和-Dmaven.test.skip=true的区别

在使用mvn package进行编译、打包时,Maven会执行src/test/java中的JUnit测试用例,有时为了跳过测试,会使用参数-DskipTests和-Dmaven.test.skip=true  .


这两个参数的主要区别是:

-DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。

-Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类。

mvn clean -U install -Dmaven.test.skip=true
mvn clean -U package -Dmaven.test.skip=true
mvn clean -U package -Dtest -DfailIfNoTests=false
mvn clean -U install -Dtest -DfailIfNoTests=false



-Dmaven.test.failure.ignore=true 测试报错忽略

如果想跳过测试阶段,可用:
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

猜你喜欢

转载自angie.iteye.com/blog/2322185