SuperAPI AI 工具集

Turborepo Monorepo Testing

测试与质量

查看项目

更新于 10-16 03:47

技能介绍

该技能面向 Turborepo 与 pnpm 单仓(monorepo)项目的 QA 场景,用于编写、审查或调试 monorepo 中的测试,以及搭建跨工作区的共享测试基础设施。

核心理念包括:工作区隔离,每个包拥有可独立运行的测试,不依赖工作区之间的隐式依赖;仅测试受影响包,借助 Turbo 依赖图只运行受变更影响的包测试;共享测试工具,把通用 fixture、mock 与 helper 抽到专门的共享包,避免各工作区重复;缓存感知的测试流水线,按源码输入缓存结果,未改动代码的包不重复跑测试;默认并行,通过 Turbo 任务编排并行执行,仅对有真实资源冲突(如共享数据库)的测试串行;跨包集成测试,通过同时导入多个工作区的集成测试验证协作正确性;配置一致性,在根目录使用共享 Vitest/Jest 配置统一测试约定、覆盖率阈值与报告器设置。

文档给出了推荐的目录结构(packages 下含 shared、web、api、test-utils、config 等),以及 turbo.json 的 test、test:unit、test:integration、test:e2e、lint、typecheck 流水线配置示例;根级 vitest.workspace.ts、共享基础 Vitest 配置与包级配置的合并写法;test-utils 共享包的 package.json、fixture、MSW mock 与 React 渲染 helper 示例。

运行方式方面,受影响包测试可用 pnpm turbo test --filter=...[origin/main] 只跑相对 main 的变更影响包,也可用 --filter=@repo/shared... 指定包及其依赖方,或用 --filter=...[HEAD~1] 针对最近一次提交,配合 --dry-run 预览范围。文档还提供 CI 脚本示例,通过 --dry-run=json 解析受影响包列表后执行测试。此外包含共享+API、Web+API 的跨包集成测试示例,以及带 monorepo 意识的 Playwright 配置片段。

限制:资料未给出正式的安装命令、版本要求、收费模式与适用平台的完整说明;示例中的依赖版本仅出现在 package.json 片段中,具体以项目实际为准。