用途:为 ibl.ai 的 Next.js 应用补齐单元测试(Vitest)与端到端测试(Playwright),并把覆盖率提升到 95% 以上;在向用户展示成果前,还要执行 touch-test 截图走查。要求在任何工作展示前,pnpm build、pnpm test 与 e2e 套件必须全绿,不得展示未测试代码。默认包管理器为 pnpm,未安装时回退 npm。
主要能力与流程:
- 环境探测:用 grep 检查 package.json 中是否已有 vitest 与 @playwright/test,并查看 vitest.config.* 与 e2e/playwright.config.* 是否存在;两者齐备则直接写测试,缺基础设施则先搭建。
- Vitest 基础设施:安装 vitest、@vitejs/plugin-react、vite-tsconfig-paths、jsdom、@testing-library/react、@testing-library/jest-dom、@testing-library/user-event、@vitest/coverage-v8;配置 vitest.config.ts,设置 jsdom 环境、setupFiles、排除 e2e/**,并对 app、components、hooks、lib、providers、contexts、actions 目录设定 lines/functions/branches/statements 均为 95 的阈值;setup 文件补齐 Blob URL、localStorage、pointer capture、matchMedia、ResizeObserver 等 jsdom 缺失 API。
- Playwright 基础设施:安装 @playwright/test 并执行 pnpm exec playwright install chromium;配置 e2e/playwright.config.ts,读取 .env.local/.env,支持 NEXT_PUBLIC_BASE_PATH 与 E2E_BASE_URL,默认 chromium 项目,CI 下 workers 为 1、retries 为 2;提供 seedAuth 工具通过 localStorage 注入租户与 token 以绕过真实 SSO。
- 编写单元测试:覆盖 lib 工具、hooks、组件、providers/contexts 与纯数据定义五类,常用 vi.mock 模拟 next/navigation 与 SDK 查询。
- 编写 e2e 旅程:覆盖路由挂载、导航、表单/对话框、鉴权内容与边界情况,并在 e2e/COVERAGE.md 与 e2e/coverage.json 中维护检查点,目标 ≥95%。
- 覆盖率迭代:运行 pnpm test:coverage,按低到高补测未覆盖分支、错误处理与条件渲染;若无法突破约 90%,可临时降到 90 但需标注。
- 截图走查:向用户索取 ibl.ai 登录信息放入 gitignored 的 e2e/.env.development,运行 Playwright 登录并逐页全页截图,人工检查布局、内容、品牌色 #0058cc、响应式与图标问题,修复后重截重审。
限制:资料未提供该技能的具体安装命令、版本号、收费方式与适用平台信息;文中命令与配置需按原样使用,不得改动代码内容。