现在我想使用我的默认数据库来测试 API,因为我需要太多的数据来模拟请求,所以我不想设置测试数据库。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'bills_db',
'USER': 'root',
'PASSWORD': '****',
}
}
我该如何使用它?
现在我想使用我的默认数据库来测试 API,因为我需要太多的数据来模拟请求,所以我不想设置测试数据库。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'bills_db',
'USER': 'root',
'PASSWORD': '****',
}
}
我该如何使用它?
另一种选择是使用Django的数据库fixture存储所有环境(测试、开发、生产)共有的数据。这里的附加好处是,fixtures使得用共同的数据填充新的数据库变得非常容易:
./manage.py loaddata myfixture1 myfixture2
./manage.py dumpdata
命令创建 fixtures。例如,以下是如何从名为 books
的应用中的模型 Author
创建 JSON fixtures: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']
....
使用相同的数据库名称作为默认和测试的名称。
Django使用以下模式定义数据库:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'USER': 'mydatabaseuser',
'NAME': 'mydatabase',
'TEST': {
'NAME': 'mytestdatabase',
},
},
}
mydatabase
替代mytestdatabase
。
Type 'yes' if you would like to try deleting the test database 'bills_db', or 'no' to cancel: no
then returnTests cancelled.
- A.Raouf