一尘不染

在Spring Boot中使用@TestPropertySource覆盖@PropertySource

spring-boot

我有我的Spring Boot主课程:

@SpringBootApplication
@PropertySource("file:/my/file/properties")
public class Application extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(Application.class);
    }
  //main method
}

我正在从外部文件读取属性(使用@PropertySource)。现在,我有一个集成测试:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes= Application.class)
@WebIntegrationTest
@TestPropertySource("file:/my/test/file/properties") // <---
public class MyTest {
  //some tests
}

我需要使用另一个外部属性文件,从不同的指示中@PropertySourceApplication类。因此,我添加了@TestPropertySource,但似乎此注释并未覆盖@PropertySource

我能做什么?

提前致谢。


阅读 988

收藏
2020-05-30

共1个答案

一尘不染

使用这种方式:

@TestPropertySource(locations = "classpath:test.properties")

并将测试属性文件放入 src/test/resources

2020-05-30