Spring boot SpringBoot应用程序与SpringCloud的集成测试

Spring boot SpringBoot应用程序与SpringCloud的集成测试,spring-boot,spring-cloud,spring-boot-test,Spring Boot,Spring Cloud,Spring Boot Test,我有一个使用配置服务器的spring启动应用程序。 在项目中,我有一个bootstrap.yml: spring: cloud: config: uri: ${CLOUD_CONFIG_URI:http://localhost:8888} failFast: true enabled: ?? 我可以通过参数传递服务器位置的实际配置。没关系 对于这种配置,我不知道如何在集成测试中禁用它。我的测试加载此配置并希望与配置服务器通信。我知道我可以通过spr

我有一个使用配置服务器的spring启动应用程序。 在项目中,我有一个bootstrap.yml:

spring:
 cloud:
    config:
      uri: ${CLOUD_CONFIG_URI:http://localhost:8888}
      failFast: true
      enabled: ??
我可以通过参数传递服务器位置的实际配置。没关系

对于这种配置,我不知道如何在集成测试中禁用它。我的测试加载此配置并希望与配置服务器通信。我知道我可以通过
spring.cloud.config.enabled=false
,但这不是一个解决方案(我想右键单击IDE并运行测试,而不需要每个测试方法的额外配置)


有什么想法吗?

这是一个迟来的答案,但对于从任何搜索引擎加入的人来说,这里是我的解决方案:

集成测试类上方的@Profile(“test”)注释是正确的。要使这项功能真正发挥作用,请将两个额外的配置文件添加到普通资源文件夹,而不是测试资源文件夹

  • 添加“application test.yml”
  • 添加“bootstrap test.yml”
  • 在bootstrap-test.yml中添加以下内容:

    spring:
        cloud:
            config:
              enabled: false
    

    使用此配置,您可以将所有需要的配置选项放入application-test.yml,bootstrap-test.yml将禁用spring cloud配置。

    您尝试过在集成测试中使用spring配置文件吗?请建议如何在此处使用配置文件?理想的解决方案是为enabled选项使用'test'配置文件(如果活动配置文件与'test'不同,则启用),但如何做到这一点?您可以在类级别使用@profile(“test”),并在application.yml或appliation.properties文件中添加spring.profiles.active=test、dev,并在运行代码时使用-Dspring.profiles.active=test..您是对的,但这如何解决我的问题呢?我已使用测试启用测试配置文件。如何使用此配置文件禁用配置服务器?您可以在测试配置文件中提及禁用配置服务器。那么,如果必须从存储库获取数据以用于integrationTest,我该怎么办?