如何在django测试中使用默认数据库

时间:2017-09-24 15:02:31

标签: django testing django-rest-framework

现在我想使用我的默认数据库测试API,因为我首先需要太多数据来模拟请求所以我不想设置测试数据库

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'bills_db',
        'USER': 'root',
        'PASSWORD': '****',
    }
}

我该如何使用它?

2 个答案:

答案 0 :(得分:3)

另一种选择是使用Django's database fixtures来获取所有环境(test,dev,prod)通用的数据。这里的额外好处是,使用固定装置可以轻松地使用您的公共数据为新数据库设立种子:

./manage.py loaddata myfixture1 myfixture2

您可以使用./manage.py dumpdata创建修正。以下是如何使用Author应用中的books模型创建JSON fixture,例如:

mkdir books/fixtures
./manage.py dumpdata --indent=2 --output books/fixtures/author.json books.author 

然后你可以在你的测试中使用那个灯具:

from django.test import TestCase


class AuthorTestCase(TestCase):
    fixtures = ['author']
    ....

答案 1 :(得分:1)

使用相同的数据库名称作为默认值并进行测试。

django使用以下模式来定义数据库:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'USER': 'mydatabaseuser',
        'NAME': 'mydatabase',
        'TEST': {
            'NAME': 'mytestdatabase',
        },
    },
}

只需使用mydatabase代替mytestdatabase