如何在测试中覆盖 django CACHE 设置

t_i*_*_io 7 testing django settings caching unit-testing

django.core.cache.backends.dummy.DummyCache在我的测试中使用,但是,有一个测试需要实际缓存,所以我想覆盖这个特定测试的 CACHE 设置。我想测试在使用cache_page url 配置的 url 中调用DRF视图。

在我的测试归档此我用的是@override_settings这样的:@override_settings(CACHES={'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}})。如果我只运行这个测试,这很好用。但是现在其他一些测试失败了。在Django 文档中

我发现一个警告说:

更改缓存设置是可能的,但如果您使用使用缓存的内部组件,例如 django.contrib.sessions,则有点棘手。例如,您必须在使用缓存会话并覆盖 CACHES 的测试中重新初始化会话后端。

所以我假设我必须以某种方式重新初始化中间件堆栈或 urlconf。但我不确定并在这一点上卡住了。