簡體   English   中英

從 Maven 構建中排除測試

[英]Exclude Tests from Maven build

當我運行maven clean install它總是執行src/test/java中的所有測試,有沒有辦法跳過所有測試,只運行簡單的構建而不進行任何測試。

我希望我的測試在src/test/java但我想告訴 maven 不要執行它們。 我一直在互聯網上尋找類似的東西,但我沒有找到答案。

有沒有辦法做到這一點?

試試:

mvn clean install -DskipTests

來源於

您也可以選擇使用

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM