我有一个包含大量数据的生产数据库。我想将其中一些数据用于运行单元测试,但是如果要全部使用这些数据,则会在测试过程开始时花费相当长的时间来构建数据库。我想避免这种情况。

我已经使用manage.py testserver命令创建了一个测试数据库,然后删除了我不想通过管理界面包含的所有数据。如何创建保留在默认测试数据库中的数据的固定装置?

最佳答案

您可以使用dumpdata生成json固定装置,如下所示:
./manage.py dumpdata > fixture.json
如果您想从测试中保存灯具,只需序列化您的qs即可:

# ... import your Models
from django.core.serializers import serialize


qs1 = Model1.objects.filter(...)
qs2 = Model2.objects.filter(...)
...

fixture = serialize('json', list(qs1) + list(qs2) + list(...))
with open('fixture.json', 'w') as f:
    f.write(fixture)

关于python - 将Django测试数据库保存在夹具中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26588923/

10-11 05:00
查看更多