Django 测试金字塔:pytest-django + factory_boy 的高效组合

一、分层思路

单元测试:纯函数、服务层;快而多。

集成测试:ORM、视图、序列化器;覆盖核心路径。

端到端:关键用户流(登录→下单),数量少但稳定。

二、工具搭配

pytest-django 提供数据库夹具、事务隔离。

factory_boy 构造可读数据;faker 生成多样值。

``` import factory from app.models import User

class UserFactory(factory.django.DjangoModelFactory): class Meta: model = User email = factory.Faker("email")

```

三、可维护性

测试数据“贴近现实”;避免“万能工厂”。

慢测与易碎测用标记隔离;CI 分层执行。

把“脚手架 + 模板”标准化后,新模块的测试开发速度能明显提升,我在 gplpal 的工程模板里也这么做。

评论 0