启用仅在Spring中进行测试的属性

时间:2019-07-05 13:06:37

标签: spring spring-boot kotlin properties-file spring-boot-test

我尝试创建一个仅用于测试和使用其特殊属性的特殊bean。

我有application.ymlapplication-test.yml文件:用于测试的属性我只想保留在第二个文件中。

我已经创建了一个特殊的测试配置文件,但是无法启动spring boot上下文,因为它无法在application.yml中找到相同的属性。

@TestConfiguration
@EnableConfigurationProperties(
    TestProperties::class
)
class TestPropertiesConfiguration

@ConfigurationProperties("test")
data class TestProperties(
    val property1: String,
    val property2: String
)

application-test.yml:

test:
  property1: value
  property2: value

(spring boot期望在常规application.yml文件中也具有相同的属性)

是否可以具有一些专门用于测试的特殊属性?

2 个答案:

答案 0 :(得分:2)

将具有所需测试属性的application.yml副本放入您的src/test/resources目录中。

答案 1 :(得分:0)

edit:我现在意识到我对您的用例有一些误读。例如,如果您要将应用程序部署到测试环境并需要为此配置应用程序,则我的解决方案适用。

您可以通过使用弹簧轮廓来完成此操作。该博客介绍了您需要的一切: https://www.baeldung.com/spring-profiles 如果您的配置文件设置为测试,则除了application.yml外,您的应用程序还应自动使用application-test.yml。如果在application.yml和application-test.yml中都定义了属性,则应在application-test.yml中使用该属性