为什么鼻子看不到我的任何环境变量?

问题描述 投票:1回答:2

我刚刚开始使用Nose和Nosetests,但是我的测试失败了,因为Nose无法看到环境变量。

到目前为止,错误:AttributeError:“设置”对象没有属性“ DJANGO_SETTINGS_MODULE”

我通过从.bash_profile导出DJANGO_SETTINGS_MODULE来解决此问题

export DJANGO_SETTINGS_MODULE="settings"

现在,我看到:AttributeError:“设置”对象没有属性“ DATABASE_SUPPORTS_TRANSACTIONS”

为什么iPython和Django网络服务器可以看到这些ENV变量,但鼻子看不到?

python django nose
2个回答
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.NoseTestSuiteRunner'

一旦设置了NoseDjango,您就可以通过以下方式运行您的鼻子测试:

manage.py test

1
投票

显然是doesn't call中的鼻子create_test_db() django/db/backends/creation.py,所以您看到此错误。只需将其设置为None,或自己调用该方法即可。不知道这在最新版本的Django中是否已解决。

© www.soinside.com 2019 - 2024. All rights reserved.