Django和selenium整合

Dmi*_*nko 5 django selenium

我正在尝试将我的django应用程序与selenium集成以通过manage.py test命令运行selenium测试(我需要一些自动运行testserver的东西).使用django-selenium进行此集成.当我从django-selenium运行示例项目时,它很好.但是当我运行使用静态文件的真实应用程序时,我得到了这个:

      File "env\lib\site-packages\django\core\servers\basehttp.py",
 line 283, in run
    self.result = application(self.environ, self.start_response)
  File "env\lib\site-packages\django_selenium\selenium_server.p
y", line 45, in test_app
    return handler(environ, start_response)
  File "env\lib\site-packages\django\contrib\staticfiles\handle
rs.py", line 68, in __call__
    return self.application(environ, start_response)
  File "env\lib\site-packages\django\core\handlers\wsgi.py", li
ne 272, in __call__
    response = self.get_response(request)
  File "env\lib\site-packages\django\core\handlers\base.py", li
ne 153, in get_response
    response = self.handle_uncaught_exception(request, resolver, sys.exc_info())

  File env\lib\site-packages\django\core\handlers\base.py", li
ne 218, in handle_uncaught_exception
    return callback(request, **param_dict)
  File "env\lib\site-packages\django\utils\decorators.py", line
 93, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "env\lib\site-packages\django\views\defaults.py", line 3
0, in server_error
    t = loader.get_template(template_name) # You need to create a 500.html templ
ate.
  File "env\lib\site-packages\django\template\loader.py", line
157, in get_template
    template, origin = find_template(template_name)
  File "env\lib\site-packages\django\template\loader.py", line
138, in find_template
    raise TemplateDoesNotExist(name)
TemplateDoesNotExist: 500.html
Run Code Online (Sandbox Code Playgroud)

看起来这是由静态文件处理程序引起的....

我该如何解决这个错误?DEBUG是True,我在urls.py中有静态url处理程序

M S*_*lle 6

测试服务器始终运行DEBUG = False; 这是https://docs.djangoproject.com/en/dev/topics/testing/:

无论配置文件中DEBUG设置的值如何,所有Django测试都以DEBUG = False运行.这是为了确保您观察到的代码输出与生产设置中的内容相匹配.

因此,您不能依赖DEBUG处理静态文件,您需要一种类似于生产的显式方式来处理它们以便测试找到它们.您可以在自己的特殊部分urls.py打开serve()运行时的开发test:

if 'test' in sys.argv:
    static_url = re.escape(settings.STATIC_URL.lstrip('/'))
    urlpatterns += patterns('',
        url(r'^%s(?P<path>.*)$' % static_url, 'django.views.static.serve', {
            'document_root': settings.STATIC_ROOT,
        }),
    )
Run Code Online (Sandbox Code Playgroud)