(在这里交叉发布:https ://github.com/jbalogh/django-nose/issues/129 )
在 settings.py 我列出了两个数据库:
DATABASES = {
'default': {
'ENGINE': 'mysql_pymysql',
'NAME': 'OST_DEV_1',
'USER': 'root',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '3306',
},
'umc': {
'ENGINE': 'mysql_pymysql',
'NAME': 'UMC',
'USER': 'root',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '3306',
}
}
如果我在没有 REUSE_DB 的情况下运行测试,它们会工作,但速度很慢(仅在创建/销毁数据库上花费了近 2 分钟):
bash
./manage.py test myapp
但这失败了:
REUSE_DB=1 ./manage.py test myapp
DatabaseError: (1146, u"Table 'OST_DEV_1.tblMfg' doesn't exist")
这是有道理的,因为 tblMfg 在 UMC 数据库中,而不是在 OST_DEV_1 中。有没有办法告诉 django-nose 在哪里可以找到 tblMfg?请注意,我的测试本身不引用 tblMfg ——我现在坚持使用 1+1 == 2。
我们目前对 UMC 中的表手动使用“使用”:
active_mfgs = Mfg.objects.using('umc').filter(status="ACTIVE")