我们使用 Oracle(或 postgres)数据库和应用服务器来执行集成测试。为了将每个测试与另一个测试隔离,在每个测试之前删除并重新创建数据库模式。
如您所见,这是一个耗时的过程。该应用程序使用 100 多个表。我们正在考虑编写自定义 sql 以从每个表中删除不需要的数据。有没有更好的方法来保存和恢复数据库状态?
(看来DBUnit可以做到这一点,我还没有尝试过。)
单个测试涉及:
- 创建数据库模式。
- 启动应用服务器。
- 启动多个客户端应用程序。
- 执行并验证。
我们有 5000 次奇怪的测试,需要 700 个小时左右。(我们在网格环境中完成,一夜之间完成)
大多数测试使用较小的数据大小,例如最大 10 MB。