为什么鼻子没有看到我的任何环境变量?(Why does Nose not see any of my

2019-10-19 13:39发布

我刚开始用鼻Nosetests开始,我的测试是失败的,因为鼻子无法看到的环境变量。

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

我从.bash_profile中导出DJANGO_SETTINGS_MODULE这个固定

export DJANGO_SETTINGS_MODULE="settings"

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

为什么IPython的和Django的web服务器能够看到这些ENV变量,但鼻子却不能?

Answer 1:

作为阿洛克说,鼻子不从django.db.backends.creation调用BaseDatabaseCreation.create_test_db(“无”),所以你需要手动设置此设置。

我没能得到那个工作。

然而,我发现NoseDjango。

安装NoseDjango有:

easy_install django-nose  

由于Django的鼻子扩展Django的内置测试命令,你应该在settings.py它添加到您的INSTALLED_APPS:

INSTALLED_APPS = (
...
'django_nose',
...
)

然后在settings.py设置TEST_RUNNER:

TEST_RUNNER = 'django_nose.run_tests'

一旦NoseDjango是设置您可以通过运行你的鼻子测试:

manage.py test


Answer 2:

显然,鼻子不调用 create_test_db()django/db/backends/creation.py ,所以你看到了这个错误。 只要将它设置为None ,或自己调用该方法。 不知道这是固定在最近版本的Django的。



文章来源: Why does Nose not see any of my environmental variables?