我正在寻找一些解决方案,我可以单击“打开事务”按钮,从现在起,对数据库所做的任何操作都存储在内存中。然后,当我完成时,我可以点击“还原”或“提交”。
我们有很难的测试路径。要测试单个动作,我们必须准备大量的数据,并且恢复这个操作是非常困难或不可能的。我想要实现的是能够测试解决方案/操作/测试场景,并在完成后返回数据库。
显然,我不是在谈论与BEGIN;、COMMIT;和ROLLBACK;在单一连接中完成的事务。
发布于 2019-04-11 07:44:36
我们说的是多少测试数据?我能想到的一件事是:
创建包含测试数据的数据库。
create database base_test
owner = ....
is_template = true;然后在base_test中创建您需要的任何东西。
在开始测试时,使用以下方法克隆该数据库:
create database test_db
template = base_test
owner = ...;然后在test_db上运行测试。
一旦测试完成,您就可以丢弃test_db并重新创建它。测试数据的结构或内容的任何更改都必须在base_test中进行。
克隆DB的速度取决于大小,它本质上只是一个文件副本。但是,如果您的测试数据是几个GB,这可能是不可行的。
https://stackoverflow.com/questions/55626675
复制相似问题