我通常使用h2数据库通过JUnit测试应用程序,而不运行应用程序。
当我运行控制器、服务或存储库的任何测试方法时,我看不到任何生成的表。
下面是我通过Intellij Idea创建数据源时的图像。
下面是application.integration.properties文件。
spring.h2.console.enabled=true
spring.datasource.name=test
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.driver-class-name=org.h2.Driver
spring.sql.init.mode=always
spring.datasource.url=jdbc:h2:mem:weatherdb?mode=MySQL
spring.sql.init.platform=h2
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update
我还在BaseRepositoryTests中定义了@Rollback(value = false)
或@AutoConfigureTestDatabase(replace= AutoConfigureTestDatabase.Replace.NONE)
,但没有任何变化。
我该怎么修呢?
以下是回购协议:Link
1条答案
按热度按时间a5g8bdjr1#
当使用内存数据库时,只有在应用程序(例如JUnit)运行时才能创建内存数据库。
尝试在文件系统中创建H2数据库。
Spring数据源url=
jdbc:h2:file:<PATH_TO_DB>;MODE=MySQL
例如:
Spring数据源url=
jdbc:h2:file:/Users/someuser/Desktop/weather/weatherdb;MODE=MySQL