Python 运行manage.py测试时,django.contrib.messages.tests中出现虚假故障

Python 运行manage.py测试时,django.contrib.messages.tests中出现虚假故障,python,django,django-contrib,Python,Django,Django Contrib,我最近在我的应用程序中添加了身份验证(当然是通过django.contrib.auth),以及指向my base.html的适当的“sign”/“signup”链接 当我运行manage.py测试时,问题出现了,我得到了4次失败,全部来自django.contrib.messages.tests: ERROR: test_middleware_disabled_anon_user (django.contrib.messages.tests.cookie.CookieTest) ERROR: t

我最近在我的应用程序中添加了身份验证(当然是通过django.contrib.auth),以及指向my base.html的适当的“sign”/“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.
反向('django.contrib.auth.views.login',(),{}) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 文件“/Users/dave/Dropbox/Projects/statbooks.co.uk/lib/python2.6/site packages/django/core/urlresolvers.py”,第350行,相反 *args,**kwargs))) 文件“/Users/dave/Dropbox/Projects/statbooks.co.uk/lib/python2.6/site packages/django/core/urlresolvers.py”,第296行,相反 未找到参数“%s”。%(查找视图、参数、kwargs)) NoReverseMatch:找不到参数为“()”且关键字参数为“{}”的“django.contrib.auth.views.login”的反向。 注释掉my base.html中的
{%url%}
标记会使测试通过


这是什么原因造成的?

在这张Django罚单和其中的链接中,有一些关于解决办法的建议:我喜欢的一个是:。总之,它将内置测试和应用程序测试分开,然后覆盖manage.py测试以仅运行应用程序测试


这些建议都没有解决根本问题(即使基本模板使用{%url%}标记,所有单元测试也应该能够运行)。

请指定您的Django版本…在Django SVN(第337行)中,签名是
反向(viewname,urlconf=None,args=None,kwargs=None,prefix=None,current_app=None)
。由于您没有看到
urlconf=()
args={}
,因此我知道您使用的不是
反向。