用途:在 template-ts 项目中实现或评审测试工作流,帮助选择最轻量有效的测试类型,并保持项目内一致的测试模式。
主要能力:
- 测试层级由简到繁:单元测试(优先,覆盖纯函数、解析器与 Effect 服务)、TRPC 集成测试(覆盖完整 TRPC 与数据库行为)、E2E 测试(覆盖浏览器与完整用户流程)。
- 按场景给出测试类型与对应操作:纯函数/解析器/工具立即写单元测试;带依赖的 Effect 服务用 mock 层写单元测试;TRPC 过程(数据库逻辑)走 TRPC 集成测试决策流程;面向用户的流程与 UI 行为走 E2E 决策流程。
- 测试文件位置约定:packages/X/src/file.ts 对应 packages/X/src/tests/file.test.ts;apps/web-app/src/infrastructure/trpc/routers/X.ts 对应 apps/web-app/src/tests/X.test.ts;apps/web-app/src/routes/** 对应 apps/web-app/e2e/feature.e2e.ts。
- 决策流程:先判断能否单元测试,能则立即编写;需要数据库行为(连接、约束、TRPC 与持久化)时,若用户明确要求集成测试则直接实现,否则询问是否添加;需要浏览器/UI 流程验证时,若用户明确要求 E2E 则直接实现,否则询问并提示 E2E 维护成本最高;不对已明确要求的测试类型重复询问。
- 单元测试默认使用;“服务层测试使用真实服务逻辑并 mock 边界”指测试真实服务实现,将外部边界(如 HTTP、数据库、文件系统客户端)替换为 mock。
- TRPC 集成测试使用 @project/db/testing 的 seed 辅助函数,按用例准备最小必要状态。
- 具体示例见 references/examples.md,涵盖基础 Vitest、使用 @effect/vitest 与 mock 层的 Effect 测试、服务层测试、集成测试 setup 与 seed helper、E2E 与认证 helper。
命令:bun run test(运行全部单元与 TRPC 集成测试)、bun run test:watch(监听模式)、bun run test:coverage(带覆盖率)、bun run test:e2e(运行 E2E)、bun run test:e2e:ui(带 UI 的 E2E)。运行单个测试文件需从项目根目录使用完整路径,例如 bun run vitest run packages/common/src/tests/pagination.test.ts 或 bun run vitest run apps/web-app/src/tests/formatters.test.ts。注意 bun run test 的脚本不接受路径参数,且不要在子目录中运行 vitest。
限制:资料未提供该技能的安装方式、发布时间、版本与授权信息。