Maven 安装是 运行 故障安全

Maven install is running failsafe

我试图将我的集成测试与通常的生命周期分开,这意味着我不希望它们在 mvn install 期间执行。我有以下配置:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${maven-surefire-plugin.version}</version>
        <configuration>
            <excludes>
                <exclude>**/*IT.java</exclude>
            </excludes>
        </configuration>
    </plugin>

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>${maven-surefire-plugin.version}</version>
        <configuration>
            <includes>
                <include>**/*IT.java</include>
            </includes>
        </configuration>
        <goals>
           <goal>integration-test</goal>
        </goals>
    </plugin>

而且我的集成测试都是以IT为后缀的。我能够确认 surefire 确实排除了 *IT.java 测试,但是似乎 failsafe 在 [=12] 期间被触发=] 无论如何。我错过了什么?

感谢您的帮助

处理 运行ning 集成测试问题的典型配置是如下配置文件:

<profiles>
   <profile>
      <id>run-its</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-failsafe-plugin</artifactId>
            <executions>
              <execution>
                <goals>
                  <goal>integration-test</goal>
                  <goal>verify</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

通过使用上面的配置你可以运行

mvn clean verify 

这将执行单元测试。使用以下命令可以激活集成测试:

mvn -Prun-its clean verify

根据默认命名约定,将由 maven-failsafe-plugin 执行的集成测试应命名为 *IT.java,而单元测试可以命名为 *Test.java(将是通过 maven-surefire-plugin 执行。