当前位置: 首页 > 面试题库 >

用于集成测试的Spring Boot默认配置文件

廉雅惠
2023-03-14
问题内容

Spring-boot利用了Spring配置文件(http://docs.spring.io/spring-
boot/docs/current/reference/html/boot-features-
profiles.html

),这些配置文件例如允许针对不同的环境进行单独的配置。我使用此功能的一种方法是配置要由集成测试使用的测试数据库。但是我想知道是否有必要创建自己的配置文件“测试”并在每个测试文件中显式激活此配置文件吗?现在,我通过以下方式进行操作:

  1. 在src / main / resources中创建application-test.properties
  2. 将测试特定的配置写在那里(现在只是数据库名称)
  3. 在每个测试文件中包括:
    @ActiveProfiles("test")
    

有没有更聪明/更简洁的方法?例如默认的测试配置文件?

编辑1:此问题与Spring-Boot 1.4.1有关


问题答案:

据我所知,没有什么可以直接解决您的请求-但我可以提出一项建议,可以帮助您:

您可以使用自己的测试注释,该注释是包含@SpringBootTest和的元注释@ActiveProfiles("test")。因此,您仍然需要专用的配置文件,但要避免在所有测试中分散配置文件定义。

该注释将默认为配置文件test,您可以使用元注释覆盖配置文件。

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@SpringBootTest
@ActiveProfiles
public @interface MyApplicationTest {
  @AliasFor(annotation = ActiveProfiles.class, attribute = "profiles") String[] activeProfiles() default {"test"};
}


 类似资料:
  • spring-引导利用spring配置文件(http://docs.Spring.io/Spring-boot/docs/current/reference/html/boot-features-profiles.html),例如,它允许为不同环境提供单独配置。我使用这个特性的一种方法是配置测试数据库以供集成测试使用。然而,我想知道是否有必要创建我自己的配置文件'test',并在每个测试文件中显式

  • 我有一些问题。 允许在集成测试类中自动拥有控制器? 如何为这个控制器创建bean. 我有配置问题:help:

  • 我有几个繁重的Spring集成测试(是的,这不是最好的方法,我没有时间正确地模拟所有外部dep) 下面是测试的典型注释 由于以下原因,测试会定期失败: 这里有两个问题:1、让测试共存的正确方式是什么?我在surefire插件中设置了forkCount=0。好像有帮助 2.1. 在每次测试期间,我实际上不需要启动所有的

  • 我正在尝试为流配置实现一些测试。我将JMS入站通道适配器作为流的入口点,并将出站文件通道适配器(带有附加的ExpressionEvaluatingRequestHandlerAdvice)作为最后一个endpoint。 下面是一个示例代码: null 谢谢你。

  • 主要内容:默认配置文件,示例通常情况下,Spring Boot 在启动时会将 resources 目录下的 application.properties 或 apllication.yml 作为其默认配置文件,我们可以在该配置文件中对项目进行配置,但这并不意味着 Spring Boot 项目中只能存在一个 application.properties 或 application.yml。 默认配置文件 Spring Boot