我喜欢在没有领事的情况下使用测试弹簧配置文件运行我的单元测试。我正在尝试使用
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)
尝试在您的个人资料中使用
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
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}
尝试
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE)
添加到
@SpringBootTest(属性= {“spring.cloud.consul.enabled = false”,“spring.cloud.consul.discovery.enabled = false”})
或 测试/资源/bootstrap.yml as
spring.cloud.consul.enabled:假 spring.cloud.consul.discovery.enabled:假