当前位置: 首页 > 知识库问答 >
问题:

在maven中绑定到lifecycle不适用于故障保护和集成测试

上官修文
2023-03-14

当试图将故障保险绑定到生命周期时,根本不会执行任何操作。我已经阅读了这篇指南和这个相关的问题,根据这些信息,当我在pom.xml的构建/pluginManagement/plugins-部分中指定它时,应该可以让maven在集成-测试中执行故障安全的目标集成-测试

              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>2.17</version>
                <configuration>
                    <includes>
                        <include>**/*IT</include>
                    </includes>
                </configuration>
                <executions>
                    <execution>
                        <id>failsafe-integration-tests</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>failsafe-verify</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>verify</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

不幸的是,这并没有强制maven运行故障安全:集成测试(既没有mvn集成测试也没有mvn验证)

但是,如果我尝试将failsafe与以下插件规范一起使用(从这里添加配置):

             <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>2.17</version>
                <executions>
                    <execution>
                        <id>integration-test</id>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <phase>integration-test</phase>
                        <configuration>
                            <includes>
                                <include>**/*IT</include>
                            </includes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

至少maven编译故障保护:集成测试运行。但不幸的是,这并不是集成前和集成后的测试。我为此苦苦挣扎了一段时间,但我没有任何线索——应该按原样装订。

有人知道为什么会发生这种情况,或者我如何解决它吗?

共有1个答案

魏英勋
2023-03-14

你所做的是只在pluginManagement中定义它,但是你必须像这样运行它。pluginManagement中的定义是固定插件版本的好做法。

<project>
  [...]
  <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>
  [...]
</project>

除此之外,没有必要为maven failsafe插件提供包含规则,因为它已经定义了默认值,所以不需要这样做。

 类似资料:
  • 我将使用诱惑报告来监控硒测试结果。我正在使用TestNG和Maven failsafe插件来运行测试。我找到了非常清晰的例子来修改pom。xml,以便在您使用Maven surefire插件时包含case的诱惑,但对Maven failsafe插件则没有。我假设配置应该非常相似,但它不适合我。这是我pom里的东西。xml: 这是我看到的错误: 任何建议都将不胜感激。我假设配置Maven故障保护插件

  • 我想使用maven-故障安全插件来运行一些集成测试。如果任何测试失败,我希望Maven构建失败而不是构建成功。 我如何配置它,构建不成功是什么? 我的故障保护插件配置为:

  • 我正在运行spring boot,KafkaListener是我的客户。问题是我们如何从失败的kafka配置中恢复,并避免应用程序在退出代码为0的过程结束时停止。例如,不正确的配置可能是不正确的endpointurl。如果无法访问Kafka服务器,也会出现同样的情况。因此,在任何情况下,KafkaListner进程都不应该杀死服务器。 ontext.java:895应用程序上下文异常:未能启动be

  • 在我的项目中,我创建了以下目录结构 在我的pom.xml我做了以下记录 如果我复制src中的资源- 如何使联调也将资源中的文件复制到目标中?

  • 问题内容: 我正在尝试使用Maven故障安全插件通过以下配置运行集成测试: 一切正常,直到Jetty在集成前测试阶段启动。然后什么也没有发生,好像它在等待什么。最后一行说: 我如何才能使测试立即开始?我使用运行Maven 。 问题答案: 将Jetty Maven插件版本从6.1.7更改为6.1.26可以解决所有问题。

  • 在升级到Spring Boot 2.4.2(Spring 5.3.3)之后,我们的Spring Context测试失败了: 我已经将Surefire和Failsafe maven插件升级到3.0.0-M5,但是没有任何改进。朱尼特木星在5.7.0。 Spring、Spring Boot 和 Spring 测试之间没有依赖版本冲突。仅故障安全目标出现问题。