【问题标题】:Maven install is running failsafeMaven 安装正在运行故障安全
【发布时间】:2020-02-20 10:22:00
【问题描述】:

我正在尝试将我的集成测试与通常的生命周期分开,这意味着我不希望它们在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 测试,但似乎在 mvn install 期间触发了 failsafe。我错过了什么?

感谢您的帮助

【问题讨论】:

  • 首先,您在默认情况下存在的两个插件中排除/包含此内容。是的,使用mvn install 将执行故障安全插件,因为它绑定到集成测试阶段......要执行集成测试,您通常应该只使用mvn clean verify ...
  • 但是如何从 mvn install 中排除它们?
  • 如果您想阻止运行集成测试,您必须使用配置文件...
  • 你想做什么? install 阶段在 maven 中的 verify 阶段之后,这个 verify 阶段将进行集成测试。而当你执行mvn install时,maven默认会先执行verify阶段再执行install阶段?
  • 我的目标是 1) 运行 'mvn install' 来做所有事情,除了运行集成测试; 2) 运行 'mvn xxxxxx' 运行集成测试。

标签: maven testing automated-tests integration-testing


【解决方案1】:

仅在您喜欢的情况下处理运行集成测试问题的典型配置是如下配置文件:

<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-插件)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-15
    相关资源
    最近更新 更多