我们在某些集成测试中使用H2,并使用数据库的特定状态运行多个测试步骤。
我们使用SCRIPT
来转储(“缓存”)数据库状态:
SCRIPT TO '/path/to/dump.sql' CHARSET 'UTF-8'
并在每个测试步骤之前使用RUNSCRIPT
恢复转储:
RUNSCRIPT FROM '/path/to/dump.sql' CHARSET 'UTF-8'
如果测试步骤很短,则还原数据库快照可能会占用总测试执行时间。
由于不需要使用不同版本的H2恢复快照,我想知道是否有更快捷的方法来快照/恢复数据库?
也许通过访问底层的MVStore?
根据测试的性质和数据,您可能需要以某种方式在逻辑上将测试数据分开。 Fir示例测试一个测试使用1月1日的数据,另一个测试使用1月2日的数据。在这种情况下,您将使用测试数据填充数据库一次,而不需要在测试之间刷新它。