3
我有一個包含大量數據的生產數據庫。我想使用一些數據來運行單元測試,但是在測試過程開始時考慮所有這些都會導致建立數據庫,這是我想避免的。將django測試數據庫保存在夾具中?
我使用manage.py testserver
命令創建了一個測試數據庫,然後刪除了我不想通過管理界面包含的所有數據。如何創建保留在默認測試數據庫中的數據的夾具?
我有一個包含大量數據的生產數據庫。我想使用一些數據來運行單元測試,但是在測試過程開始時考慮所有這些都會導致建立數據庫,這是我想避免的。將django測試數據庫保存在夾具中?
我使用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)
但沒有按那使用默認數據庫?不是數據庫自動生成的運行測試? – Bartvbl 2014-10-27 14:54:51
你在哪裏創建testdatabase? – Anzel 2014-10-27 14:58:08
python manage.py testserver自動創建一個,請看這裏:https://docs.djangoproject.com/en/dev/ref/django-admin/#testserver-fixture-fixture – Bartvbl 2014-10-27 15:01:11