2017-05-25 170 views
2

如何跳過集成測試我想跳過集成測試,同時運行的Maven插件發佈使用命令使用Maven插件發佈

mvn -B -DskipITs release:prepare release:perform 

它似乎沒有這樣的工作方式。 -DskipITs的相同選項適用於mvn install/deploy。我不想使用-Dmaven.test.skip=true,因爲只有集成測試需要被忽略,而不是單元測試。什麼是完成這個最好的方法?

編輯-Darguments=-DskipITs作品release:prepare,但令人驚訝它release:perform工作。試過-Darguments=-Dmaven.test.skip=true,也不管用。

試圖在pom中爲發佈插件添加<arguments>skipITs</arguments>,但它會忽略命令行中提供的所有其他-Darguments。我不能在插件配置中配置所有的東西,因爲一些選項在運行時需要環境變量。

回答

0

您可以在pm.xml文件中添加一些設置。

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-surefire-plugin</artifactId> 
     <version>2.12.4</version> 
     <configuration> 
     <skipTests>true</skipTests> 
     </configuration> 
    </plugin> 
+0

我試圖避免這種情況,因爲大部分時間測試都會運行。只有當它被部署在CICD管道中。 Plus也不會跳過單元測試嗎? – ddd

1

使用Maven Profiles

以下內容添加到您的POM:

<profiles> 
    <profile> 
     <id>ItsReleaseTime</id> 
     <build> 
     <plugins> 
     <build> 
      <plugins> 
       <plugin>   
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-surefire-plugin</artifactId> 
        <version>2.20</version>  
        <configuration> 
         <excludes>  
           <exclude>**/*IT.java</exclude> 
         </excludes> 
        </configuration> 
       </plugin> 
      </plugins>  
     </build> 
    </profile> 
</profiles> 

,並調用命令:

mvn -B -P ItsReleaseTime release:prepare release:perform 
+0

對不起,這只是錯誤的,因爲maven-surefire-plugin不負責運行集成測試......並且這個命名模式默認沒有被maven-surefire-plugin使用。這是來自maven-failsafe插件的命名模式... – khmarbaise