【问题标题】:Redis Cache With Django Rest Framework TestingRedis 缓存与 Django Rest 框架测试
【发布时间】:2021-08-19 14:08:01
【问题描述】:

在我当前的项目中,我有一些需要缓存的代码(我现在使用 Redis)。因此,我不能使用假缓存或模拟。通过测试我需要一个干净的缓存,所以在setup 的测试用例类我使用以下内容:

from django_redis import get_redis_connection
get_redis_connection("default").flushall()

这会破坏并行测试(并且会产生竞争条件)。 使用主动缓存进行测试的最佳做法是什么?

【问题讨论】:

    标签: testing caching django-rest-framework redis


    【解决方案1】:

    对于路过的人,我在测试时已将缓存后端更改为LocMemCache。之后,缓存不再受并行测试的影响。

    类似这样的:

    TESTING = 'test' in sys.argv
    if TESTING:
        CACHES = {
            'default': {
                'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
            }
        }
    else:
        CACHES = {
            'default': {
                'BACKEND': 'django_redis.cache.RedisCache',
                'LOCATION': REDIS_HOST,
            }
        }
    

    注意RedisCache 支持的某些操作,LocMemCache 不支持。 cache.ttl() 就是一个例子。

    【讨论】:

      猜你喜欢
      • 2015-04-19
      • 1970-01-01
      • 2017-03-12
      • 2020-07-27
      • 2013-04-07
      • 2020-08-27
      • 2015-03-29
      • 2016-01-25
      • 1970-01-01
      相关资源
      最近更新 更多