1、背景
Maven 構(gòu)建生命周期為我們提供了對項目執(zhí)行各種操作调窍,例如驗(yàn)證,清理张遭、打包邓萨、測試和部署項目。
而有時候我們需要跳過單元測試菊卷,例如缔恳,在處理新模塊時,還有未通過的單元測試時洁闰。在這些情況下歉甚,我們可以跳過測試以避免編譯和運(yùn)行測試時發(fā)生的時間。在本文中扑眉,我們將了解可用于跳過 maven 項目中的測試的各種方法纸泄。
2、幾種跳過的方法
- 可以在插件標(biāo)簽的配置中設(shè)置跳過測試元素屬性腰素。
- 通過在 Maven 執(zhí)行命令中使用 -DskipTests 參數(shù)的命令行聘裁。
- 通過在觸發(fā) maven 命令以執(zhí)行階段時使用 maven.test.skip 屬性。
- 在使用surefire時弓千,通過在pom.xml的插件標(biāo)簽中使用exclude元素和要排除的類的名稱來排除一些測試類
2.1.跳過pom中的測試元素
如果您希望跳過某個項目的測試衡便,您可以通過以下方式在項目的 pom.xml 文件的插件標(biāo)記中將 skipTests 屬性指定為 true:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M4</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
2.2. DskipTests 參數(shù)
執(zhí)行編譯測試類,但是跳過執(zhí)行測試過程洋访。
命令:
mvn clean package -DskipTests
2.3. maven.test.skip 屬性
完全跳過測試編譯镣陕,可以在 maven 命令中使用 maven-test-skip 屬性。
大多數(shù)測試插件都支持這個屬性姻政,包括failsafe和surefire呆抑,甚至maven的編譯器插件。從命令行執(zhí)行 maven 命令時汁展,可以通過以下方式使用上述屬性:
命令:
mvn package -Dmaven.test.skip=true
3.最終的:默認(rèn)跳過理肺,然后在必要時覆蓋它
方法
在 pom.xml 文件中定義一個屬性變量并 初始化為 true , 并在跳過測試元素的節(jié)點(diǎn)上指定這個變量摄闸。
當(dāng)需要執(zhí)行測試時,在命令行中為 maven 執(zhí)行的命令中指定屬性值來覆蓋此屬性的值妹萨。這可以通過以下方式完成 -
比如: 在 properties 節(jié)點(diǎn)聲明一個defaultValueOfSkip 變量年枕。在 <skipTests> 節(jié)點(diǎn) 使用 ${defaultValueOfSkip}
代碼:
<project>
<properties>
<defaultValueOfSkip>true</defaultValueOfSkip>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M4</version>
<configuration>
<skipTests>${defaultValueOfSkip}</skipTests>
</configuration>
</plugin>
</plugins>
</build>
</project>
那么,當(dāng)有必要測試項目乎完,可以這樣做熏兄,只需在我的命令中通過以下方式將屬性 defaultValueOfSkip 的值設(shè)置為 false:
命令:
mvn package -DdefaultValueOfSkip=false
END
4.參考
http://maven.apache.org/surefire/maven-surefire-plugin/examples/skipping-tests.html
https://www.educba.com/maven-skip-test/