运行测试时禁用 Spring cloud consul
Posted
技术标签:
【中文标题】运行测试时禁用 Spring cloud consul【英文标题】:Disabling Spring cloud consul when running Test 【发布时间】:2016-06-12 09:56:41 【问题描述】:我喜欢在没有 consul 的情况下使用测试弹簧配置文件运行我的单元测试。我正在尝试对测试配置文件使用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.config.enabled:false
,你是如何禁用EnableDiscoveryClient
的?完整的异常有助于查看它是来自发现还是配置。
【参考方案1】:
尝试在您的个人资料中使用 spring.cloud.consul.enabled:false
禁用 Consul。
我使用@IntegrationTest("spring.cloud.consul.enabled=false")
标签来禁用我的测试的领事,作为一个类标签。我在 Spring Cloud Consul GitHub 问题跟踪器上发现了这一点,here。
该帖子的另一个建议是使用类似以下内容作为您的bootstrap.yml
。
spring:
application:
name: <myServiceName>
cloud:
bus:
enabled: false
discovery:
enabled: false
consul:
enabled: false
config:
enabled: false
【讨论】:
【参考方案2】:试试@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE)
【讨论】:
【参考方案3】:添加到
@SpringBootTest(properties = "spring.cloud.consul.enabled=false", "spring.cloud.consul.discovery.enabled=false")
或 测试/资源/bootstrap.yml as
spring.cloud.consul.enabled: 假 spring.cloud.consul.discovery.enabled: 假
【讨论】:
以上是关于运行测试时禁用 Spring cloud consul的主要内容,如果未能解决你的问题,请参考以下文章
在 Spring Cloud AWS 中禁用 Cloudformation
如何在 spring boot + cloud 中禁用 refreshScope 健康指示器?
无法通过 spring.cloud.config.enabled:false 禁用 Spring Cloud Config