如何使用maven发布插件跳过集成测试

时间:2017-05-25 14:57:58

标签: java maven integration-testing maven-release-plugin

我想在使用命令

运行maven release plugin时跳过集成测试
mvn -B -DskipITs release:prepare release:perform

它似乎不是这样工作的。相同的选项-DskipITs适用于mvn install/deploy。我不想使用-Dmaven.test.skip=true,因为只需要忽略集成测试,而不是单元测试。实现这一目标的最佳方法是什么?

修改-Darguments=-DskipITs适用于release:prepare,但令人惊讶的是 NOT 适用于release:perform。尝试-Darguments=-Dmaven.test.skip=true,也不起作用。

尝试在pom中为release插件添加<arguments>skipITs</arguments>,但它会忽略命令行中提供的所有其他-Darguments。我不能在插件配置中配置所有内容,因为有些选项会动态获取环境变量。

3 个答案:

答案 0 :(得分:6)

根据how to make maven release plugin skip tests,您似乎需要-DskipITs-Darguments=-DskipITs。一种是跳过编译IT,另一种是跳过运行IT。

答案 1 :(得分:2)

使用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

答案 2 :(得分: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>