【问题标题】:Execute the same @SpringBootTest with different properties使用不同的属性执行相同的@SpringBootTest
【发布时间】:2018-08-18 07:42:10
【问题描述】:
我有一个@SpringBootTest,用于在服务器上执行集成测试。根据配置,我希望服务器表现不同。配置本身由我的应用程序逻辑深处的 bean(范围 = 单例)读取,它们通过 @Value 注释读取属性。
如何使用不同的配置设置执行相同的测试?我尝试编写不同的测试类并使用@TestPropertySource(properties = XYZ) 对其进行注释。但似乎这也会影响所有其他测试(由于单例范围?)。有没有办法在测试后重置属性?
重新指定我的问题:我想在测试期间使用不同的 @Value 属性配置我的 bean,并且该值应该只在整个特定测试执行期间有效。
感谢任何指点。
【问题讨论】:
标签:
spring-boot
junit
spring-boot-test
【解决方案1】:
我有一个 web 服务,它通过使用配置中的属性连接到其他 web 服务的客户端。与任何组织一样,我们有不同的环境。对于测试,我想测试环境而不是本地。这就是我只为集成测试覆盖默认属性值的方式。通过这样做,我可以点击测试环境而不是默认的本地环境。
@SpringBootTest(value = {"eureka.client.enabled=false", // Don't start Eureka
"com.somepackage.webservicename.client.serviceUrl = http://nodename.envname:26730"})
希望这会有所帮助!