[英]Exclude Tests from Maven build
當我運行maven clean install
它總是執行src/test/java
中的所有測試,有沒有辦法跳過所有測試,只運行簡單的構建而不進行任何測試。
我希望我的測試在src/test/java
但我想告訴 maven 不要執行它們。 我一直在互聯網上尋找類似的東西,但我沒有找到答案。
有沒有辦法做到這一點?
您也可以選擇使用
mvn install -Dmaven.test.skip
來自Maven網站:
如果絕對必須,您還可以使用maven.test.skip屬性跳過編譯測試。 maven.test.skip受到Surefire,Failsafe和Compiler Plugin的尊重。
按照說你甚至不會編譯測試源。
來自http://maven.apache.org/plugins/maven-surefire-plugin/examples/skipping-test.html :
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.2</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>
我運行測試時最喜歡的管理方法是創建一個名為skip-tests
的Maven變量,並將其默認為true
。 然后您可以像這樣使用該變量:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.2</version>
<configuration>
<skipTests>${skip-tests}</skipTests>
</configuration>
</plugin>
這樣,您可以在構建時傳遞變量, -Dskip-tests=false
,當您不希望它們運行時。 當您進行集成和單元測試時,這非常有用,並且只想使用一個變量來運行或禁用兩組測試。
用這個
mvn clean install -DskipTests
我們使用Surefire進行單元測試,並使用Failsafe進行集成測試。
要跳過所有測試:
mvn clean package -DskipTests
要跳過Failsafe測試:
mvn clean package -DskipIT
要僅跳過Surefire,您需要在編譯測試類之后顯式調用Failsafe插件的集成測試目標:
mvn clean test-compile failsafe:integration-test
這里所有的答案都是正確的。 准確地說,
-DskipTests - 編譯測試類,但跳過運行它們,
-Dmaven.test.skip=true - 跳過編譯測試文件,也不運行它們
我認為最簡單的是: mvn clean package -Dmaven.skip.tests=true
我認為這種方法可以使用,因為它不會讓你改變你的pom,因此不必對項目進行更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.