小不的笔记

时间之外的往事

Maven 跳过测试 skip test

跳过测试并不是一个好的做法,但是很多时候不得不这么做:D

通过命令行

1
2
3
4
5
6
7
8
9
# 编译测试类,跳过测试类的执行
mvn clean package -DskipTests
# 跳过测试类的编译和执行
mvn clean package -Dmaven.test.skip=true

# 跳过测试类的编译和执行,PowerShell 专属写法。
mvn clean package --% -Dmaven.test.skip=true
mvn clean package `-Dmaven.test.skip=true
mvn clean package '-Dmaven.test.skip=true'

PowerShell 有自己特殊的参数处理方式,会截断-Dmaven.test.skip=true为两个参数,导致命令执行失败,需要额外的转义,也可以用`, 单引号。

默认跳过测试

命令行参数的方式需要每次执行命令的时候添加额外的参数,如果希望默认情况下就跳过测试阶段,可以通过配置skipTestsmaven.test.skip属性。

1
2
3
4
5
<properties>
<skipTests>true</skipTests>
<!-- 或 -->
<maven.test.skip>true</maven.test.skip>
</properties>

-Dxxx 和 <properties> 都是 Maven 配置属性的一种方式, 前者的优先级高于后者。

参考链接

Maven Surefire Plugin – Skipping Tests
IntegrationTestMojo.java