use*_*404 5 django unit-testing multiple-databases
我正在使用django 1.2,我不得不在我的项目上设置第二个数据库.一旦我在我的项目中设置第二个连接和路由器,我甚至没有引用第二个数据库的所有测试用例都开始失败.运行应用程序工作正常,syncdb工作正常,只是我遇到问题的测试(单元测试).
在我看来,永远不会创建第二个数据库,即使我手动创建(test_mydbname)它仍然失败.
这支持吗?
我必须添加一个 DefaultRouter,然后我的测试再次开始工作。似乎在测试场景中,django 不知道“默认”数据库。所有信息,包括测试数据库创建顺序:https://docs.djangoproject.com/en/dev/topics/testing/advanced/#tests-and-multiple-databases
这是我的默认路由器(django 1.7,但不太确定allow_relation和allow_migrate
class DefaultRouter(object):
"""
A router for the default db. add last in settings
"""
db_label = 'default'
def db_for_read(self, model, **hints):
return self.db_label
def db_for_write(self, model, **hints):
return self.db_label
def allow_relation(self, obj1, obj2, **hints):
return True
def allow_migrate(self, db, app_label, model=None, **hints):
return True
Run Code Online (Sandbox Code Playgroud)
在settings.py中:
DATABASE_ROUTERS = ['otherapp.dbrouter.CustomDbRouter', 'project.dbrouter.DefaultRouter']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1596 次 |
| 最近记录: |