【发布时间】:2016-08-09 09:17:03
【问题描述】:
我正在为 API 创建测试。我想设置数据库并为每个测试清理它。问题是我的数据库非常复杂而且很大,所以我想知道是否有办法对整个测试数据库进行完整的设置和清理,而且不会太重。感谢您的建议。如果您需要更多详细信息,请告诉我。如果这有帮助,我将使用 phpunit 进行测试并使用 symphony 作为我的框架。
【问题讨论】:
-
如何让数据库重复,每次测试后你可以用原始(其他)数据库覆盖你刚刚使用的数据库。您可以非常快速地克隆它,即从 phpMyAdmin。
-
感谢@MilanG 的快速回复。我也想过。问题是测试也会被其他人使用,所以我也需要在测试之前进行设置。我正在寻找一种使用 php 上传整个 sql 文件的方法,并且由于数据库有很多表和大量数据,因此不会对系统造成太大影响。好吧,las 部分是相对的,但对我的系统来说很大。
-
你可以让mysql数据库转储,然后从php调用控制台mysql命令将该转储导入数据库。所以任何时候你想“重置”你的表只需执行“exec”或一些类似的命令来调用 mysql 重新导入数据库。
-
感谢@MilanG。我创建了一个测试数据库并通过使用 pg_restore 和 exec 调用它来“重置”它。非常感谢。现在我创建了一个控制台命令来重置所有测试数据库。谢谢
-
对答案/cmets 投票是表示感谢的另一种方式。 :)
标签: php postgresql unit-testing symfony phpunit