Spring Boot-用prod属性覆盖的测试属性

时间:2018-10-16 06:42:54

标签: spring-boot kotlin junit5

我的测试属性被生产属性中的那些属性覆盖。 一开始,我都给application.yml命名了,但是没有用,所以我像this post中所说的那样更改为application-test.yml并使用配置文件。 现在看起来像波纹管(kotlin):

@SpringBootTest
@ExtendWith(SpringExtension::class)
@ContextConfiguration(classes = [InvalidPropertiesApplication::class])
@ActiveProfiles("test")
@TestPropertySource(locations = ["classpath:application.yml"])
class InvalidPropertiesApplicationTests {
    @Test
    fun contextLoads(@Autowired users: Users) {
        assertEquals("TEST", users.file)
    }
}

src/main/resources/application.yml中,我仅设置了此属性  到PRODUCTION,在src/test/resources/application-test.ymlTEST中。

此测试失败。 完整示例见at github

提前谢谢。

1 个答案:

答案 0 :(得分:2)

加载了@TestPropertySource的属性的优先级高于示例中的所有其他属性源。而"classpath:application.yml"指的是src/main/resources/application.yml

订单:@TestPropertySource> application- {profile} .properties / yaml> application.properties/yaml

另请参阅Spring Boot Reference Guide