如何使用来自其他数据库的值(例如:生产数据库)填充在测试Django测试用例时创建的测试数据库。
详细说明:
当我运行以下命令时,
$ python manage.py test
为测试目的创建了一个测试数据库,但它没有任何数据。我希望创建的测试数据库填充一些初始值。
谢谢..
答案 0 :(得分:3)
您可以使用dumpdata
来获取包含来自实时数据库的数据的文件。
然后,您可以自动加载文件中的数据以进行测试(请参阅Django tests):
from django.test import TestCase
from django.core.management import call_command
class Tests(TestCase):
@classmethod
def setUpTestData(cls):
call_command('loaddata', 'myfile', verbosity=0)
答案 1 :(得分:2)
您可以使用django fixtures填充测试数据库。
创建生产数据库的夹具并将其写入某个文件
python manage.py dumpdata > backup.json
您可以使用此命令填充测试数据库
python manage.py loaddata backup.json
如果您想通过运行python manage.py test
来执行此操作,那么您应该编写自定义django-admin commands
答案 2 :(得分:0)
您想查看fixtures
。这是指向文档页面的链接:https://docs.djangoproject.com/en/1.8/howto/initial-data/
基本上,您可能希望转储当前数据库以进行测试,因此您需要执行以下操作:
python manage.py dumpdata
然后你想把你的文件放在Django寻找灯具的目录中。您可以使用FIXTURE_DIRS
变量在设置中指定它,也可以使用默认值。默认值只是在Django应用程序的fixtures
目录中。