无法加载application.properties文件@DataJpaTest注释

10

我正在尝试在Spring Boot项目中加载application.properties进行测试,同时使用@DataJpaAnnotation和自定义的application.properties文件。

以下是我的示例配置:


@DataJpaTest
@RunWith(SpringRunner.class)
@SqlGroup({
        @Sql(executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD, scripts = {
                "classpath:sql/dont-use-cascadeType-remove/before.sql" }),
        @Sql(executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD, scripts = {
                "classpath:sql/dont-use-cascadeType-remove/after.sql" }) })
@TestPropertySource(locations = { "classpath:application.properties" })
@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)
@Slf4j
public class BookCategoryRepositoryTest {

我能够成功执行测试用例,但是当我查看日志时,发现我的应用程序使用的是嵌入式H2数据库的URL,而不是我在application.properties文件中指定的那个。

从日志中我发现:

embedded database: url='jdbc:h2:mem:69b49362-3f83-4e79-9f35-b0deb5e744f2;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=false', username='sa' 

我的属性文件包含

spring.datasource.url=jdbc:p6spy:mem:jpa-best-practices;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.username=db-user
spring.datasource.password=db-password

不确定为什么会出现这种情况,而且我也找不到解决方案。请帮忙。

1个回答

7

你只需要在测试中注释

@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)

正如文档记录的那样。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接