为Django Unit测试创建测试数据库

时间:2015-11-04 09:18:58

标签: python django unit-testing

如何使用来自其他数据库的值(例如:生产数据库)填充在测试Django测试用例时创建的测试数据库。

详细说明:

当我运行以下命令时,

$ python manage.py test

为测试目的创建了一个测试数据库,但它没有任何数据。我希望创建的测试数据库填充一些初始值。

谢谢..

3 个答案:

答案 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目录中。