[英]Spurious failures in django.contrib.messages.tests when running manage.py test
我最近在我的应用程序中添加了身份验证(当然是通过django.contrib.auth),以及到我的base.html的相应“signin”/“signup”链接。
当我运行manage.py
测试时出现问题,我得到4次失败,全部来自django.contrib.messages.tests:
ERROR: test_middleware_disabled_anon_user (django.contrib.messages.tests.cookie.CookieTest)
ERROR: test_middleware_disabled_anon_user (django.contrib.messages.tests.fallback.FallbackTest)
ERROR: test_middleware_disabled_anon_user (django.contrib.messages.tests.user_messages.LegacyFallbackTest)
ERROR: test_middleware_disabled_anon_user (django.contrib.messages.tests.session.SessionTest)
所有人都有同样的失败:
TemplateSyntaxError: Caught NoReverseMatch while rendering: Reverse for 'django.contrib.auth.views.login' with arguments '()' and keyword arguments '{}' not found.
在manage.py shell
这有效:
>>> from django.core.urlresolvers import reverse
>>> reverse('django.contrib.auth.views.login')
'/signin/'
但是,这不是:
>>> reverse('django.contrib.auth.views.login', (), {})
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/Users/dave/Dropbox/Projects/statbooks.co.uk/lib/python2.6/site-packages/django/core/urlresolvers.py", line 350, in reverse
*args, **kwargs)))
File "/Users/dave/Dropbox/Projects/statbooks.co.uk/lib/python2.6/site-packages/django/core/urlresolvers.py", line 296, in reverse
"arguments '%s' not found." % (lookup_view_s, args, kwargs))
NoReverseMatch: Reverse for 'django.contrib.auth.views.login' with arguments '()' and keyword arguments '{}' not found.
从我的base.html中注释掉{% url %}
标记会使测试通过。
是什么导致了这个?
这个Django票证及其中的链接有几个解决方法的建议: http : //code.djangoproject.com/ticket/11077我喜欢的是: http : //groups.google.com/group/django-developers/ msg / ec7508651e9e9fb8 。 总而言之,它将内置测试和应用程序测试分开,然后覆盖manage.py测试以仅运行应用程序测试。
这些建议都没有解决根本问题(即使基本模板使用{%url%}标记,所有单元测试也应该能够运行)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.