我们目前正在使用 Watin 对我们的 Web 应用程序进行 UI 测试。实际上,我们正在从上到下进行集成测试,因为我们使用的是测试数据库而不是模拟。
为了确保测试数据库处于预期状态,我们之前一直使用 SQL Server 的快照功能在每次测试开始时回滚数据库。这相当慢,并且还会在恢复快照后立即导致错误。
由于每个测试都调用 UI 并可能使用多个数据库连接,因此我们无法在每个连接上启动事务。
我想知道是否有可能以某种方式将所有数据库连接附加到单个事务并在以后回滚它们?这可能必须在数据库级别本身发生。
如果有人对如何为每个 UI 测试重置我们的测试数据有任何其他建议,我很想听听您的想法。