我刚刚开始使用Nose和Nosetests,但是我的测试失败了,因为Nose无法看到环境变量。
到目前为止,错误:AttributeError:“设置”对象没有属性“ DJANGO_SETTINGS_MODULE”
我通过从.bash_profile导出DJANGO_SETTINGS_MODULE来解决此问题
export DJANGO_SETTINGS_MODULE="settings"
现在,我看到:AttributeError:“设置”对象没有属性“ DATABASE_SUPPORTS_TRANSACTIONS”
为什么iPython和Django网络服务器可以看到这些ENV变量,但鼻子看不到?
如Alok所说,Nose不会从django.db.backends.creation调用BaseDatabaseCreation.create_test_db('None'),因此您需要手动设置此设置。
我无法使它正常工作。
但是,我找到了NoseDjango。
使用以下命令安装NoseDjango:
easy_install django-nose
由于django-nose扩展了Django的内置测试命令,因此应将它添加到settings.py中的INSTALLED_APPS中:
INSTALLED_APPS = (
...
'django_nose',
...
)
然后在settings.py中设置TEST_RUNNER:
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
一旦设置了NoseDjango,您就可以通过以下方式运行您的鼻子测试:
manage.py test
显然是doesn't call中的鼻子create_test_db()
django/db/backends/creation.py
,所以您看到此错误。只需将其设置为None
,或自己调用该方法即可。不知道这在最新版本的Django中是否已解决。