You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建内置override_settings的Django TestCase子类以加速登录测试?

自定义Django测试类实现快速登录测试

在Django测试场景中,若登录安全性并非测试核心关注点,我们可以通过@override_settings指定PASSWORD_HASHERS为MD5PasswordHasher,大幅提升测试客户端的登录运行速度,原写法如下:

from django.test import TestCase, Client, override_settings

@override_settings(
    PASSWORD_HASHERS = [ "django.contrib.auth.hashers.MD5PasswordHasher" ]
)
class Test2(TestCase):
    # 测试逻辑...

如果每次编写这类测试都要重复配置这个装饰器,确实麻烦。你完全可以创建一个内置该配置的自定义TestCase子类FastLoginTestCase,实现简化调用。

实现步骤

  1. 在项目的utils模块(比如myproject/utils.py)中定义这个自定义测试类:
from django.test import TestCase, override_settings

# 用装饰器修饰子类
@override_settings(
    PASSWORD_HASHERS = [ "django.contrib.auth.hashers.MD5PasswordHasher" ]
)
class FastLoginTestCase(TestCase):
    """内置快速登录配置的测试基类"""
    pass
  1. 之后在编写测试时,直接继承这个自定义类即可,无需再重复添加装饰器:
from myproject.utils import FastLoginTestCase

class Test2(FastLoginTestCase):
    # 测试逻辑...
    def test_something(self):
        # 这里的登录操作会使用MD5哈希器,速度更快
        self.client.login(username="testuser", password="testpass")
        # 后续测试步骤

这样就能实现你想要的简化调用,每次写需要快速登录的测试时,直接继承FastLoginTestCase就自动应用了MD5哈希器的配置。

内容的提问来源于stack exchange,提问作者nigel222

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 05:39:54