我的测试属性被生产属性中的那些属性覆盖。
一开始,我都给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.yml
到TEST
中。
此测试失败。 完整示例见at github
提前谢谢。
答案 0 :(得分:2)
加载了@TestPropertySource
的属性的优先级高于示例中的所有其他属性源。而"classpath:application.yml"
指的是src/main/resources/application.yml
。
订单:@TestPropertySource> application- {profile} .properties / yaml> application.properties/yaml