【问题标题】: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"})
    

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-14
      • 2021-12-20
      • 1970-01-01
      相关资源
      最近更新 更多