在Django中,我使用多个数据库,但通过测试功能,如果运行manage.py test **,则多个数据库的数据库不应创建测试数据库。我该如何解决这个问题。
答案 0 :(得分:0)
在你的settings.py
中,你可以告诉Django在测试时使用什么数据库。如果您想使用SQLite
,请执行此操作的代码如下:
if 'test' in sys.argv:
DATABASES['default'] = {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'tests.db',
}
每次运行Django
时, manage.py test
都会创建一个新数据库,因此您需要在test.py
文件中使用 fixtures 来预加载数据库运行测试前的数据(如果需要预加载数据)。
例如,要为User model
生成灯具,请使用以下代码:
python manage.py dumpdata auth.User --indent=2 > app_name/fixtures/admin.json
要使用fixtures
,您可以按照以下方式构建tests.py
:
from django.test import TestCase
class MyTests(TestCase):
fixtures = [admin.json]
def setUp(self):
# other setup code here
def test_the_obvious(self):
assert True == True