我刚刚开始使用Nose和Nosetests,我的测试失败了,因为Nose看不到环境变量。
到目前为止,错误: AttributeError:'Settings'对象没有属性'DJANGO_SETTINGS_MODULE'
我通过从.bash_profile
导出DJANGO_SETTINGS_MODULE来修复此问题export DJANGO_SETTINGS_MODULE="settings"
现在我看到了:
AttributeError:'Settings'对象没有属性'DATABASE_SUPPORTS_TRANSACTIONS'
为什么iPython和Django网络服务器能够看到这些ENV变量,但Nose不能?
答案 0 :(得分:2)
正如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.run_tests'
设置NoseDjango后,您可以通过以下方式运行鼻子测试:
manage.py test
答案 1 :(得分:1)
显然在create_test_db()
中有doesn't call django/db/backends/creation.py
个鼻子,所以您看到了这个错误。只需将其设置为None
,或自行调用方法即可。不确定这是否在最新版本的Django中得到修复。