运行测试时禁用Spring cloud consul

问题描述 投票:0回答:4

我喜欢在没有领事的情况下使用测试弹簧配置文件运行我的单元测试。我正在尝试使用

spring.cloud.config.enabled:false
并禁用
EnableDiscoveryClient
注释来测试配置文件,但它不起作用。

我正在使用

spring.cloud.consul 1.0.0.BUILD-SNAPSHOT
。 这是例外:

com.ecwid.consul.transport.TransportException: java.net.ConnectException:连接被拒绝:连接于 com.ecwid.consul.transport.DefaultHttpTransport.executeRequest(DefaultHttpTransport.java:87) 在 com.ecwid.consul.transport.DefaultHttpTransport.makeGetRequest(DefaultHttpTransport.java:46) 在 com.ecwid.consul.v1.ConsulRawClient.makeGetRequest(ConsulRawClient.java:66)

java spring spring-cloud consul
4个回答
18
投票

尝试在您的个人资料中使用

spring.cloud.consul.enabled:false
禁用 Consul。

我使用

@IntegrationTest({"spring.cloud.consul.enabled=false"})
标签作为类标签来禁用 consul 进行测试。我在 Spring Cloud Consul GitHub 问题跟踪器上发现了这一点,here

该帖子的另一个建议是使用类似以下内容作为您的

bootstrap.yml

spring:
  application:
    name: <myServiceName>
  cloud:
    bus:
      enabled: false
    discovery:
      enabled: false
    consul:
      enabled: false
      config:
        enabled: false

0
投票

AFAIK,一旦你放置了 spring-cloud-starter-consul-config,当你尝试导入它时,你就无法真正禁用它。所以我的解决方法就是导入领事,然后使用“可选”,这样就不会抛出错误。

# will import regardless, but it's okay as "optional" won't throw error
spring.config.import: "optional:consul:"


spring.cloud.consul:
  host: ${CONSUL_HOST:localhost}
  port: ${CONSUL_PORT:8500}
  config:
    enabled: ${CONSUL_ENABLE:true}
    prefix: ${CONSUL_CONFIG:config}
    fail-fast: true
    data-key: application.yaml
    name: ${spring.application.name}

-1
投票

尝试

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE)


-1
投票

添加到

@SpringBootTest(属性= {“spring.cloud.consul.enabled = false”,“spring.cloud.consul.discovery.enabled = false”})

或 测试/资源/bootstrap.yml as

spring.cloud.consul.enabled:假 spring.cloud.consul.discovery.enabled:假

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.