我有一个运行在Heroku上的API,并希望能够使用测试数据库对其进行测试。我的问题是TestCase setUp(self) 方法将数据添加到自动创建的测试数据库中,然后我的测试向本地运行版本发送POST请求。这段代码仅使用常规默认数据库,而不是测试运行的数据库。
以下是一些代码和我尝试过的方法。
在我的主settings.py文件中,我已经为数据库命名如下:
以下是一些代码和我尝试过的方法。
在我的主settings.py文件中,我已经为数据库命名如下:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'theOneTrueDB',
}
}
我在这里阅读到(https://docs.djangoproject.com/en/3.0/topics/testing/overview/#the-test-database):
测试数据库的默认名称是通过在DATABASES中的每个NAME值前面添加test_来创建的。
所以我想,在我的应用程序之一的视图文件中,我只需要做Tenant.objects.using('test_theOneTrueDB').all() 就可以了,但是它显示:
django.db.utils.ConnectionDoesNotExist:连接 test_theOneTrueDB 不存在
我也尝试过
Tenant.objects.using('test_default')
还有许多其他的东西。我迷茫了。如果设置另一个数据库并在设置中使用它,我也可以接受。
Tenant.objects.save(using='theOneTrueDBTest)
或者类似的东西。
任何帮助都将不胜感激!
编辑: 我知道现在我的设置看起来像这样
DATABASES = {
'default': {
'NAME': 'theOneTrueDB',
'ENGINE': 'django.db.backends.sqlite3',
},
'other': {
'NAME': 'theOneTrueTest',
'ENGINE': 'django.db.backends.sqlite3',
}
}
但如果我尝试像这样保存到另一个数据库
tempPM.save(using='other')
然后我遇到了这个错误
断言错误:在此测试中不允许对“other”进行数据库查询。将“other”添加到API.tests.TenantLogin.databases以确保正确的测试隔离并消除此故障。
--keepdb
并且想要使用 DBMS 应用程序检查数据库,我该如何操作? - Silidrone