Kry*_*ski 6 python testing django python-2.7 python-unittest
我的应用程序叫做abcapp.我在Python 2.7上运行Django 1.5b1.同样的问题发生在django的最新trunk版本中.
当我运行manage.py test abcapp我写过的所有测试时.
当我跑步时,manage.py test我得到了一连串的失败.显示了第一个失败:
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
Run Code Online (Sandbox Code Playgroud)
测试结果如下:
======================================================================
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.768s
FAILED (failures=1, skipped=141, expected failures=1)
Run Code Online (Sandbox Code Playgroud)
相反的消息,我也有django.contrib.messages.middleware.MessageMiddleware我的MIDDLEWARE_CLASSES.我的价值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',
)
Run Code Online (Sandbox Code Playgroud)
任何人都可以对这个问题有所了解吗?虽然我只能运行自己的测试,但我希望运行整个套件以确保适当的质量控制.
研究结果:我通过自己的测试注意到,当使用测试http客户端时,没有加载任何中间件.当我试图通过测试客户端中的Web请求测试我自己的中间件时,我发现了这一点.如果是这种情况,这是否意味着djanog核心中存在不可测试的代码?
小智 8
这似乎是Windows版本的一个错误.
以下是基于文件的会话不在Windows上存储任何数据的问题.建议解决办法:只需更换os.rename同shutil.move在django/contrib/sessions/backends/file.py:
+import shutil
....
-os.rename(output_file_name, session_file_name)
+shutil.move(output_file_name, session_file_name)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1272 次 |
| 最近记录: |