SuperAPI AI 工具集

data-seeding-fixtures-builder

测试与质量

查看项目

更新于 10-15 18:37

技能介绍

用途

Data Seeding & Fixtures Builder 用于为开发和测试生成真实感、确定性的种子数据。它围绕 Prisma 与 @faker-js/faker 组织种子脚本、工厂函数、fixtures 与数据库重置脚本,帮助在不同环境中快速填充数据库。

主要能力

  • 种子数据策略:在 prisma/seed.ts 中清理已有数据并批量创建用户、订单等记录。
  • 工厂函数:为每个模型提供可复用的工厂类,支持 create、createMany 以及 createAdmin 等便捷方法,并可传入 email、name、role 等覆盖选项。
  • 真实感 fixtures:以静态数组定义产品等固定数据,再通过映射批量写入数据库。
  • 确定性种子:通过 faker.seed(12345) 固定随机种子,使每次生成的数据一致,便于测试复现。
  • 关系构建:在创建订单时关联用户与产品,并生成订单项,维护外键完整性。
  • 环境专属种子:按 NODE_ENV 区分 development、staging、testing,分别生成少量易调试、中等规模真实场景或最小可预测的数据。
  • 数据库重置脚本:使用 PostgreSQL 的 session_replication_role 与 TRUNCATE ... CASCADE 清空所有表(跳过 _prisma_migrations),随后可重新播种。
  • E2E 测试 fixtures:基于 Playwright 的 base.extend 定义 authenticatedUser 与 products fixtures,在测试中自动创建数据并在结束后清理。
  • npm 脚本:提供 db:seed、db:seed:dev、db:seed:staging、db:reset、db:reset:test 等命令。

使用方式

在 Prisma 项目中引入该技能提供的代码结构:编写 prisma/seed.ts 作为入口,按环境调用对应种子函数;为每个模型创建 factories 目录下的工厂类;在 fixtures 目录定义静态数据;在 scripts/reset-db.ts 中实现重置逻辑;在 package.json 中配置上述脚本。测试中可通过 Playwright fixtures 注入预置数据。

适用场景

适用于需要为本地开发、预发布环境或自动化测试准备数据库数据的项目,尤其是使用 Prisma 与 PostgreSQL 的 Node.js/TypeScript 应用,以及需要确定性数据以复现测试结果的 E2E 测试场景。

限制

资料未提供该技能对数据库类型(除 PostgreSQL 外)、Prisma 版本、faker 版本的具体兼容范围,也未说明安装方式、收费模式或平台支持情况,这些信息暂未提供。