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

时间:2016-02-22 15:05:13

标签: django unit-testing caching testing settings

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

要在我的测试中对此进行归档,请使用@override_settings,如下所示:@override_settings(CACHES={'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}})。 如果我只运行此测试,这可以正常工作。但现在其他一些测试都失败了。在django docs

我发现了一个警告:

  

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

所以我假设我必须以某种方式重新初始化中间件堆栈或urlconf。但是我不确定并且在这一点上陷入困​​境。

0 个答案:

没有答案