Mar*_*cha 4 spring-data-jpa spring-boot
我遇到了 问题@DataJpaTest
,因为由于缺少架构 [1],无法创建表。所以我想,我可以通过在连接字符串中创建模式来欺骗 spring,如下所示:
应用程序属性
spring.datasource.url=jdbc:h2:mem:SCH;MODE=Oracle;DB_CLOSE_DELAY=-1;INIT=create schema if not exists SCH
spring.datasource.username=test
spring.datasource.password=test
Run Code Online (Sandbox Code Playgroud)
无论多么神秘,这都无济于事。为什么?
快速查看测试日志的摘录:
2019-02-13 17:48:12.735 INFO [CCH,,,] 28586 --- [ main] o.s.j.d.e.EmbeddedDatabaseFactory : Starting embedded database: url='jdbc:h2:mem:11247702-6bc4-44b9-be65-9639ebb8d695;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=false', username='sa'
Run Code Online (Sandbox Code Playgroud)
这是因为@DataJpaTest 忽略了 application.properties 中配置的数据源,而是使用自动配置的 h2 数据库
我发现我可以使用,@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
但这也不起作用并且失败了Unknown host specified
。什么主持人???
那么任何想法如何说服@DataJpaTest 使用配置的数据源?
Mar*_*cha 11
我道歉,这是我在项目/测试配置中的错误。
给出一些答案:默认情况下@DataJpaTest
使用嵌入式 h2 数据库并忽略 application.properties 中声明的连接字符串。Annotation@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
禁用此行为,并且 application.properties 中配置的 db 将被@DataJpaTest
测试使用。
归档时间: |
|
查看次数: |
3000 次 |
最近记录: |