我在springboot应用程序中运行测试时遇到了一些困难,这些应用程序使用flyway来管理迁移,所有的测试都失败了,因为flyway尝试运行迁移。
我已经安装了h2并使用@datajpatest尝试修复这个问题,应用程序正常启动但崩溃,因为存在于迁移文件中的代码。例子:
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
CREATE TABLE app_user (
id uuid DEFAULT uuid_generate_v4() NOT NULL PRIMARY KEY,
name varchar(200) NOT NULL
);
正如您所看到的,所有迁移文件都有postgres语法,属性是hibernate:ddl auto:validate
那么,有没有办法只在测试中从@entity创建一个h2表而不使用迁移,或者所有测试都不使用start-spring应用程序运行?如果为true,我可以在没有spring应用程序的情况下测试存储库吗?
谢谢
1条答案
按热度按时间iaqfqrcu1#
我建议在测试中禁用flyway并启用hibernate自动模式创建。
可以使用属性启用和禁用功能:
禁用飞行路线:
spring.flyway.enabled=false
启用休眠模式创建spring.jpa.hibernate.ddl-auto=create
例如