如何在spring-boot 1.4.3中覆盖spring-boot应用程序属性

时间:2017-01-24 07:08:33

标签: java spring testing spring-boot integration-testing

在我们的项目中,我们通过覆盖IntegrationTest注释中的属性来设置集成测试,如下所示:

@RunWith(SpringJunitClassRunner.class)
@IntegrationTest("server.port:0",
                  "health.hystrix.enabled:false"
                   .... other properties ....
                )
@ActiveProfile("local","no-swagger")
public class IntegrationTest{
}

但是在spring-boot 1.4 @IntegrationTest注释已被弃用。 Spring文档建议使用@SpringBootTest注释。 我的问题是如何用这个新的注释覆盖属性?

1 个答案:

答案 0 :(得分:3)

我的理解from the docs是您可以覆盖@SpringBootTest内的属性。

  

@SpringBootTest注释还具有属性属性   可用于指定应该具有的任何其他属性   在环境中定义。现在正在加载属性   与Spring的常规@TestPropertySource注释相同。

And also the javadoc of @SpringBootTest says

  

@AliasFor(value="value")

     

public abstract String[] properties

     形式为key=value

属性应添加到Spring中   测试运行前的环境。

     

返回:要添加的属性

因此,只需覆盖@SpringBootTest注释中的属性即可。

@SpringBootTest(properties={"server.port=0"})