【发布时间】:2017-04-27 09:51:18
【问题描述】:
我有完整的 h2 数据库,其中包含大量数据。我想针对该数据启动集成测试。
问题1: 是否可以从完整的 h2 数据库生成 *.sql 插入文件/脚本?
我已经按照here 的描述尝试了SCRIPT TO 'fileName'。但它只生成CREATE/ALTER TABLE/CONSTRAINT 查询,意味着创建没有数据的架构。
如果第一个问题的答案是 - “不可能”,那么:
问题 2: *.sql 插入文件是将初始数据集插入 h2 db 以进行集成测试的唯一方法吗?
【问题讨论】:
-
@Berger 如果我错了,请纠正我,但该参考是关于使用嵌入式 h2 配置 Spring。他们使用
db/sql/insert-data.sql脚本来初始化数据。我的问题是关于如何从现有数据库自动创建db/sql/insert-data.sql脚本 -
如果你使用 DBUnit,你可以注入你可以从你自己的查询中创建的数据集。我在这篇文章中讨论它:*.com/questions/40884098/…
-
@davidxxx 我可以在没有 DBUnit 的情况下使用纯 sql 注入初始数据。问题是数据集很大,我至少要花几天时间来描述init数据集。
-
用 DBunit 生成 init 数据集不是一种选择?
-
@davidxxx 使用 DBUnit 有什么好处?这意味着编写相同的脚本,但我将获得 xml,而不是众所周知的 sql 语法。我将在测试中使用 init.sql 脚本和 Spring 的 \@Transactional 注释。而且DBUnit也有一些缺点,可以看*.com/questions/3950002/…
标签: java spring integration-testing h2 spring-test