用途:在 Django 项目中实践测试驱动开发,适用于新建 Django 应用、实现 DRF API、测试模型/视图/序列化器,以及搭建测试基础设施。
主要能力:给出红-绿-重构工作流;pytest.ini 与测试 settings 配置(内存数据库、禁用迁移、快速密码哈希、Celery eager);conftest.py 夹具(user、admin_user、authenticated_client、api_client、authenticated_api_client);factory_boy 模式(LazyAttribute、Sequence、SubFactory、post_generation、freeze)及各自失败模式;pytest.mark.django_db 与 transaction=True 的取舍;mock 陷阱(patch 类而非实例、QuerySet 未求值、装饰器视图、import 时求值的 settings、未断言的第三方 HTTP mock);反模式(只断言状态码、不断言 form.errors、TestCase 包住真实事务、mock 自己的模型);Django 特有坑(模块级 connections、patch.object 无法 mock 实例 dunder、时区感知、auto_now_add);mutmut 变异测试的 Django 摩擦点(--reuse-db、--nomigrations、DEBUG 盲区、mock 削弱变异检测、fork 隔离、--parallel 与 SerializeMixin)。
使用方式:按资料配置 pytest.ini 与 config/settings/test.py,在 tests/conftest.py 定义夹具,用 tests/factories.py 构建工厂,再以 pytest 运行;变异测试用 mutmut。
限制:资料未提供安装命令、版本要求、收费与平台信息;部分示例为片段,需结合项目实际调整。