Spring Boot拒绝接收应用程序测试属性

时间:2018-06-19 08:29:02

标签: java spring spring-boot

我有一个测试用例,我启动整个应用程序上下文,我想将数据库换成内存数据库并禁用Flyway。

我的主应用程序配置位于项目的根目录中,名为config。我的测试配置位于src/test/resources。我已尝试将测试资源文件命名为application.ymlapplication-test.yml

我的测试如下:

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@TestPropertySource(locations="classpath:application-test.yml")
public class SmokeTest {

    @LocalServerPort
    private int port;

    @Value("${api.path}")
    private String path;

    @Value("${spring.datasource.url}")
    private String url;

    @Autowired
    private TestRestTemplate restTemplate;

    @Before
    public void test() {
        System.out.println(url);
    }
}

无论我做什么,数据源的URL 总是来自config文件夹中主应用程序配置的URL。我的主要配置有这个:

flyway:
  enabled: true
spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/datasource
    username: user
    password: password

这是测试配置:

flyway:
  enabled: false
spring:
  datasource:
    url: jdbc:h2:mem:db;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
    username: sa
    password: sa

这让我疯了,我觉得我错过了一些微不足道的事情。

0 个答案:

没有答案