2014-10-27 52 views
3

我有一個包含大量數據的生產數據庫。我想使用一些數據來運行單元測試,但是在測試過程開始時考慮所有這些都會導致建立數據庫,這是我想避免的。將django測試數據庫保存在夾具中?

我使用manage.py testserver命令創建了一個測試數據庫,然後刪除了我不想通過管理界面包含的所有數據。如何創建保留在默認測試數據庫中的數據的夾具?

回答

3

可以使用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) 
+1

但沒有按那使用默認數據庫?不是數據庫自動生成的運行測試? – Bartvbl 2014-10-27 14:54:51

+0

你在哪裏創建testdatabase? – Anzel 2014-10-27 14:58:08

+0

python manage.py testserver自動創建一個,請看這裏:https://docs.djangoproject.com/en/dev/ref/django-admin/#testserver-fixture-fixture – Bartvbl 2014-10-27 15:01:11