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

标签 spring spring-boot spring-data-jpa spring-data spring-boot-test

我正在尝试在 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 Db 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

不知道为什么会发生,我无法找到解决方案。请帮忙。

最佳答案

你只需要注释你的测试

@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)

documented .

关于spring - 无法加载 application.properties 文件 @DataJpaTest 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57345449/

相关文章:

java - 如何使用jsp在Spring Boot Web应用程序中实现分页前端

java - @Scheduled 中运行的作业不会调用 spring 数据 jpa 保存

Spring JPA 定义了多个 EntityManagerFactory 但存储库仍然只访问一个数据库

java - Spring data MongoDB 检查字段是否包含文本

java - 针对不同语言本地化 xsl

java - 如何在不使用spring security的情况下限制登录用户在spring中访问登录页面?

spring - 当 userRepositary 尝试在数据库中保存新用户时,我的 validator 失败

java.lang.IllegalStateException : When using WebSecurityConfigurerAdapter

java - Spring Boot 应用程序中的 Websocket - 获取 403 Forbidden

Hibernate 6 H2 方言覆盖 Nulls 优先级被忽略