python – 当我在Django中运行完整的测试套件时,我收到有关缺少MessageMiddleware的错误

python – 当我在Django中运行完整的测试套件时,我收到有关缺少MessageMiddleware的错误,第1张

概述我的应用程序叫做abcapp.我在 Python 2.7上运行Django 1.5b1.同样的问题发生在django的最新trunk版本中. 当我运行manage.py test abcapp时,我写的所有测试都通过了. 当我运行manage.py测试时,我遇到了一连串的失败.显示了第一个失败: Traceback (most recent call last): File "C:\Progr 我的应用程序叫做abcapp.我在 Python 2.7上运行Django 1.5b1.同样的问题发生在django的最新trunk版本中.

当我运行manage.py test abcapp时,我写的所有测试都通过了.

当我运行manage.py测试时,我遇到了一连串的失败.显示了第一个失败:

Traceback (most recent call last):  file "C:\Program files\Django-1.5b1\django\core\handlers\base.py",line 116,in get_response    response = callback(request,*callback_args,**callback_kwargs)  file "C:\Program files\Django-1.5b1\django\vIEws\decorators\cache.py",line 89,in _wrapped_vIEw_func    response = vIEw_func(request,*args,**kwargs)  file "C:\Program files\Django-1.5b1\django\contrib\messages\tests\urls.py",line 30,in add    getattr(messages,message_type)(request,msg)  file "C:\Program files\Django-1.5b1\django\contrib\messages\API.py",line 70,in deBUG    fail_silently=fail_silently)  file "C:\Program files\Django-1.5b1\django\contrib\messages\API.py",line 22,in add_message    raise MessageFailure('You cannot add messages without installing 'MessageFailure: You cannot add messages without installing django.contrib.messages.mIDdleware.MessageMIDdleware

测试结果如下:

======================================================================FAIL: test_clearsessions_command (django.contrib.sessions.tests.fileSessionTests)----------------------------------------------------------------------Traceback (most recent call last):  file "C:\Program files\Django-1.5b1\django\test\utils.py",line 213,in inner    return test_func(*args,**kwargs)  file "C:\Program files\Django-1.5b1\django\contrib\sessions\tests.py",line 444,in test_clearsessions_command    self.assertEqual(1,count_sessions())AssertionError: 1 != 2----------------------------------------------------------------------Ran 474 tests in 5.768sFailed (failures=1,skipped=141,expected failures=1)

与消息相反,我的MIDDLEWARE_CLASSES中有django.contrib.messages.mIDdleware.MessageMIDdleware.我的MIDDLEWARE_CLASSES的值如下.我在我的应用程序中使用消息没有任何问题.

MIDDLEWARE_CLASSES = (    'django.mIDdleware.common.CommonMIDdleware','django.contrib.sessions.mIDdleware.SessionMIDdleware','django.mIDdleware.csrf.CsrfVIEwMIDdleware','django.contrib.messages.mIDdleware.MessageMIDdleware','django.contrib.auth.mIDdleware.AuthenticationMIDdleware','deBUG_toolbar.mIDdleware.DeBUGToolbarMIDdleware',)

任何人都可以对这个问题有所了解吗?虽然我只能运行自己的测试,但我希望运行整个套件以确保适当的质量控制.

研究结果:我通过自己的测试注意到,当使用测试http客户端时,没有加载任何中间件.当我试图通过测试客户端中的Web请求测试我自己的中间件时,我发现了这一点.如果是这种情况,这是否意味着djanog核心中存在不可测试的代码?

解决方法 这似乎是windows版本的一个错误.

这是问题File-based session does not store any data on Windows.
建议的解决方法:在django / contrib / sessions / backends / file.py中用shutil.move替换os.rename:

+import shutil.... -os.rename(output_file_name,session_file_name) +shutil.move(output_file_name,session_file_name)

Original patch

总结

以上是内存溢出为你收集整理的python – 当我在Django中运行完整的测试套件时,我收到有关缺少MessageMiddleware的错误全部内容,希望文章能够帮你解决python – 当我在Django中运行完整的测试套件时,我收到有关缺少MessageMiddleware的错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1206602.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存