我正在尝试将生菜与标准的django测试联系起来。生菜自己工作时效果很好。但是,当我从django.test.client导入客户端时,我收到错误: “无法导入设置,因为环境变量DJANGO_SETTINGS_MODULE未定义。”
我的steps.py看起来像:
from lettuce import *
from django.test.client import Client
@before.all
def set_browser():
world.browser = Client()
@step(r'I access the url "(.*)"')
def have_the_number(step,url):
world.response = world.browser.get(url)
我收到以下错误
File "/usr/local/bin/lettuce", line 9, in <module>
load_entry_point('lettuce==0.1.34', 'console_scripts', 'lettuce')()
File "/Library/Python/2.7/site-packages/lettuce-0.1.34-py2.7.egg/lettuce/lettuce_cli.py", line 71, in main
result = runner.run()
File "/Library/Python/2.7/site-packages/lettuce-0.1.34-py2.7.egg/lettuce/__init__.py", line 114, in run
self.loader.find_and_load_step_definitions()
File "/Library/Python/2.7/site-packages/lettuce-0.1.34-py2.7.egg/lettuce/fs.py", line 42, in find_and_load_step_definitions
module = __import__(to_load)
File "/Users/aliahsan/djcode/drftest/features/steps.py", line 2, in <module>
from django.test.client import Client
File "/Library/Python/2.7/site-packages/django/test/__init__.py", line 5, in <module>
from django.test.client import Client, RequestFactory
File "/Library/Python/2.7/site-packages/django/test/client.py", line 27, in <module>
from django.db import transaction, close_connection
File "/Library/Python/2.7/site-packages/django/db/__init__.py", line 14, in <module>
if not settings.DATABASES:
File "/Library/Python/2.7/site-packages/django/utils/functional.py", line 276, in __getattr__
self._setup()
File "/Library/Python/2.7/site-packages/django/conf/__init__.py", line 40, in _setup
raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE)
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.
我尝试在 init .py文件中设置DJANGO_SETTINGS_MODULE变量,但它也不起作用。 有人可以帮我这个吗?
答案 0 :(得分:0)
我实际上一直在关注入门教程,并且在app文件夹中使用了Lettuce命令,并且没有为django找到任何设置文件。意识到后得到修复, 运行
python manage.py harvest
从项目文件夹中的命令,它的工作原理。如果您只想测试项目中的特定应用程序,可以在收获时提及应用程序。默认情况下,它会测试设置文件中安装的所有应用中的所有功能。