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

无法理解Spring Boot如何使用Maven管理集成测试。它是否使用故障安全插件?

陶琦
2023-03-14

基本上,在任何有集成测试的项目中,可响应的插件就是maven failsafe插件。默认情况下,它执行具有后缀it的所有类。每个示例:MyServiceIT.java

嗯,这是第一个问题。我发现的Spring Boot运行集成测试的大多数示例(甚至在官方文档或Spring博客中),测试类都有sufix测试。因此,我理解它们将由maven surefire插件运行,这对于集成测试来说是不可取的。

但混乱并没有结束。

<plugin>
    <!-- for unit tests -->
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <excludes>
            <exclude>**/*IT.java</exclude>
        </excludes>
    </configuration>
</plugin>

<plugin>
    <!--for integrations tests-->
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
    <configuration>
        <skipITs>${skipITs}</skipITs>
    </configuration>
</plugin>

共有1个答案

乜业
2023-03-14

我不认为您需要使用故障安全插件。spring boot docs告诉您要使用的spring-boot-starter-parent引用包含了任何人都可以考虑使用的一切,包括厨房水槽。

failsafe插件是进行集成测试的一种方法。这就剩下一些手动配置了。

但是如果您使用spring boot,您应该使用spring boot附带的内置设施。毕竟,这就是使用spring Boot的全部意义所在。他们为你做了很多。我怀疑在Spring Boot文档中没有看到很多关于spring文档中提到的故障安全插件的原因是他们不希望人们使用它。

 类似资料:
  • 问题内容: 我还不清楚如何最好地使用Maven Failsafe插件进行集成测试。我的用例是针对本地MySQL数据库测试SQL查询。 我了解应该在该阶段启动数据库,而在期间关闭数据库。但是我该如何指定呢?我应该在pom.xml中放入命令行吗?还是我应该使用特定注释进行注释的方法? 问题答案: 在常规的内置Maven生命周期(jar,war …)中,和测试阶段未绑定到任何maven插件(即,这些阶段

  • 我还不完全清楚如何最好地使用Maven Failsecurity插件进行集成测试。我的用例是针对本地MySQL数据库测试SQL查询。 我知道数据库应该在集成前测试阶段启动,在集成后测试阶段关闭。但我该如何具体说明呢?是否应该在pom中输入命令行。xml?或者一个我应该用特定注释进行注释的方法?

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

  • 有一种方法可以控制作业失败后在Azkaban中发生的事情,我的意思是,如果特定的作业失败,就做特定的事情,假设一个对hive的加载失败了,我想向splank发送错误,这可能吗?或者我应该创建特定的作业来插入并像python那样处理失败 谢谢

  • 大家好, 我从今年1月开始开发cucumber测试,现在在Spring Boot环境中与maven(surefire和failsafe)并行运行cucumber集成测试时遇到了一个问题。 简而言之: 我想在运行Spring Boot应用程序的同时运行cucumber集成测试。我使用maven时,Surefire或Failsafe插件处于活动状态。当我注释掉代码中的每个Spring Boot组件时,

  • 我将和作为测试依赖项: 我的集成测试命名正确(在、或之后,默认情况下由Failsafe包含,默认情况下由Surefire排除)。 有什么方法可以使用JUnit5测试和Failsafe吗?