复制生产数据以测试数据库以进行 PHPUnit 测试的有效方法

Posted

技术标签:

【中文标题】复制生产数据以测试数据库以进行 PHPUnit 测试的有效方法【英文标题】:Efficient way to copy over production data to test DB for PHPUnit tests 【发布时间】:2016-03-24 07:36:32 【问题描述】:

在运行单元测试之前,测试数据库需要复制所有相关数据。在我需要运行的这个特定测试中,数据分布在 12 个表中,测试中的调用方法将依赖这些表。

运行测试时,我需要确保在测试数据库中填充这些测试用例的相同值。

是否有一种精简有效的方法来执行此操作,还是我必须在运行测试之前手动复制每个表中的每一行?

我正在使用 Yii 1.1 和 phpUnit 4.6。

【问题讨论】:

可以使用迁移 【参考方案1】:

您可以轻松定义适当的迁移并在需要时应用它们。

您可以使用向上迁移和向下迁移来准备所有测试所需的数据库

【讨论】:

以上是关于复制生产数据以测试数据库以进行 PHPUnit 测试的有效方法的主要内容,如果未能解决你的问题,请参考以下文章

配置 Symfony 5.3 以使用专用的 MongoDB 数据库进行测试

PHPUnit 单元测试

PHPUnit中的测试方法应该如何命名

在 phpunit 测试中覆盖 symfony TokenAuthenticator

PHPstorm配置PHPunit对composer引入的php代码进行单元测试

如何将 DataSource 绑定到 InitialContext 以进行 JUnit 测试? [复制]