3

我目前正在使用 selenium 和 Behat 为 PHP 应用程序构建一个自动测试,该应用程序将 MySQL 用于具有 InnoDB 引擎的数据库。数据库大约 50GB,其中包含大量数据。测试运行良好,但目前我在每次新测试运行之前都在努力清理。

由于测试正在插入数据(例如创建用户),我想在每个测试运行之前将数据库置于已知状态。由于数据之间的许多关系,清理脚本非常复杂,没有副作用。

我的问题是,在执行 Behat 功能之前,是否有任何好的做法可以快速将数据库恢复到已知状态(50GB 是很多数据)?

4

2 回答 2

4

不要使用 50GB 的数据进行测试。创建一个数据较少的数据库,专门用于测试。

于 2013-08-03T11:11:36.120 回答
0

您可以使用具有“试运行”模式的事务,该模式将回滚所有查询。这不会恢复您的数据库的某个状态,但它可以让您在不进行任何更改的情况下与您的数据进行交互。

于 2013-09-19T11:23:24.773 回答