dav*_*ode 6 django django-middleware django-testing
如何在测试期间禁用特定的中间件(我编写的自定义中间件)?
有几种选择:
创建一个单独的test_settings设置文件进行测试,然后通过以下方式运行测试:
python manage.py test --settings=test_settings
Run Code Online (Sandbox Code Playgroud)settings.py如果test在,则随时修改您的sys.argv
if 'test' in sys.argv:
# modify MIDDLEWARE_CLASSES
MIDDLEWARE_CLASSES = list(MIDDLEWARE_CLASSES)
MIDDLEWARE_CLASSES.remove(<middleware_to_disable>)
Run Code Online (Sandbox Code Playgroud)希望有帮助。
也相关(因为此页面在相关查询的搜索引擎中排名很高):
如果您只想为单个案例禁用中间件,您还可以使用@modify_settings:
@modify_settings(MIDDLEWARE={
'remove': 'django.middleware.cache.FetchFromCacheMiddleware',
})
def test_my_function(self):
pass
Run Code Online (Sandbox Code Playgroud)
https://docs.djangoproject.com/en/dev/topics/testing/tools/#django.test.override_settings
from django.test import TestCase, override_settings
from django.conf import settings
class MyTestCase(TestCase):
@override_settings(
MIDDLEWARE_CLASSES=[mc for mc in settings.MIDDLEWARE_CLASSES
if mc != 'myapp.middleware.MyMiddleware']
)
def test_my_function(self):
pass
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2339 次 |
| 最近记录: |