用途:在 Cartridge Controller monorepo 中运行测试套件,用于验证改动、提交前检查或按需执行测试。
主要能力与命令:
- pnpm lint:check:ESLint 与 Prettier 检查,约 30 秒,提交前建议先跑;pnpm format 可自动修复格式与 lint。
- pnpm test:单元测试,约 1-2 分钟;pnpm test:ci 带覆盖率,约 2-3 分钟。测试文件位于 packages/keychain/src/**/*.test.ts 与 packages/controller/src/tests/。
- pnpm test:storybook:Storybook 视觉回归测试,约 5-10 分钟;pnpm test:storybook:update 在有意变更后更新基线快照,快照存于 packages/keychain/image_snapshots/。
- pnpm build:完整构建并含类型检查,约 2-3 分钟。
- pnpm e2e:Playwright 端到端测试,约 5-10 分钟;pnpm e2e:ui 带界面调试,测试位于 examples/next/tests/。
使用方式:可运行指定测试文件,如 pnpm keychain test -- --testPathPattern="connection";失败重跑可加 --verbose --testNamePattern="...";开发时可用 --watch。按包测试可用 pnpm controller test、pnpm keychain test。模拟 CI 顺序为 pnpm lint:check,然后 pnpm build 与 pnpm test:ci,再 pnpm test:storybook。
限制与常见问题:Storybook 测试超时需确认 6006 端口未被占用;E2E 启动失败需先在一个终端运行 pnpm dev;出现 Cannot find module 可执行 pnpm clean && pnpm i && pnpm build:deps。git pre-commit 钩子会自动运行 pnpm run format --ui stream 与 pnpm run lint:check --ui stream。