1

当我运行测试时,我希望它在创建测试数据库时复制包含所有数据的现有数据库。

POSTGIS_TEMPLATE = DATABASES['default']['NAME']直到我的一位同事用于他的测试,我才想到这一点。因为我们GeoDjango用于我们的项目,所以POSTGIS_TEMPLATE存在让测试运行者知道要使用哪个 postgis 数据库模板。当他如上所述定义它时,它实际上也创建了包含所有数据的测试数据库。这对我们来说有点方便,所以我们不需要创建夹具文件。但是如果我们不能对不使用的项目做同样的事情GeoDjango

所以我在这里有两个问题:使用项目数据库中已经存在的数据是个好主意吗?(对于某些测试,我可能需要先删除某个表的所有数据,但在很多情况下,我们会针对非空数据集进行测试。)如果这不是一个坏主意,对于不使用的项目GeoDjango,是否存在无论如何我可以将它设置为从现有数据库中复制数据吗?

4

1 回答 1

0

使用项目数据库中预先存在的数据是个好主意吗?

不——它很容易改变,导致你的测试中出现奇怪的非确定性行为。

最安全的选择是使用 转储现有数据./manage.py dumpdata,然后将其作为固定装置加载到您的各个测试中。本文档描述了如何。

于 2013-10-04T22:05:11.767 回答