.claude/skills/e2e-coverage-analyzer/SKILL.md
分析当前分支 git 改动,检查 e2e 测试用例覆盖情况,并可补充缺失的测试用例
npx skillsauth add shenjingnan/xiaozhi-client e2e-coverage-analyzerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
分析当前分支相对于 main 的改动,评估 tests/e2e/ 中现有测试用例是否足以覆盖改动涉及的功能点。
git branch --show-currentgit merge-base main HEADgit --no-pager diff --name-only main...HEADgit --no-pager diff --stat main...HEADgit --no-pager diff main...HEAD!find tests/e2e -maxdepth 1 -type d ! -path tests/e2e | sort
按以下四个阶段执行,每个阶段输出清晰的中文报告。
过滤核心逻辑文件:从改动文件列表中排除以下非逻辑文件类型:
*.config.*, *.env*, tsconfig*.json, .eslintrc*, .prettierrc**.d.ts, types/*.ts, interfaces/*.ts*.md, CHANGELOG*, LICENSE*package-lock.json, pnpm-lock.yaml, yarn.lock.github/**, .gitlab-ci*, Dockerfile*, docker-compose***/*.test.ts, **/*.spec.ts, tests/**, __tests__/**保留以下类型的文件作为核心逻辑文件:
apps/frontend/src/** 下的组件、页面、hooks、store、工具函数apps/backend/** 下的服务、路由、控制器、中间件、处理器packages/ 下各包的源码逻辑文件识别功能点:对每个核心逻辑文件,结合 git diff 的实际改动内容,分析其涉及的功能维度:
/dashboard)输出改动分析报告,格式如下:
=== 改动分析报告 ===
核心逻辑文件(共 N 个):
1. apps/frontend/src/pages/Dashboard.tsx
- 涉及页面:Dashboard 页面
- 涉及功能点:新增状态卡片 X、修改表格列 Y
排除的非逻辑文件(共 M 个):
- package.json(依赖变更)
...
读取所有现有 e2e 测试用例:遍历 tests/e2e/ 下每个子目录中的 test.md 文件,提取每个用例覆盖的功能点关键词。
建立映射关系:将阶段一识别的功能点与现有测试用例进行匹配。匹配规则:
输出覆盖匹配报告,格式如下:
=== 覆盖匹配报告 ===
已覆盖的功能点:
| 功能点 | 匹配测试用例 | 匹配类型 |
|--------|-------------|---------|
| Dashboard 页面加载 | 测试Dashboard页面加载 | 精确匹配 |
缺少覆盖的功能点:
| 功能点 | 涉及文件 | 风险等级 |
|--------|---------|---------|
| 新增的 XXX 功能 | apps/frontend/src/components/XXX.tsx | 高 |
覆盖率总结:
- 总功能点数:N
- 已覆盖:M(X%)
- 未覆盖:K(Y%)
风险等级判定标准:
根据覆盖匹配结果输出结论:
如果全部覆盖(覆盖率 100%):
=== 结论 ✅ ===
当前分支的所有改动均有对应的 e2e 测试用例覆盖:
[列出所有匹配关系]
建议:可以直接提交 PR,或在提交前运行 /e2e 执行全量测试验证。
如果存在未覆盖项:
=== 结论 ⚠️ ===
当前分支存在 N 个缺少 e2e 覆盖的功能点:
[高优先级]
1. [功能点描述] — 涉及文件:xxx
[中优先级]
2. ...
是否需要为这些缺失的功能点创建新的 e2e 测试用例?
回复"是"将继续创建,回复"否"则仅保留上述报告。
特殊情况处理:
当用户确认需要补充测试用例时:
确定要创建的测试用例列表:按风险等级从高到低排列。
为每个缺失的功能点创建 e2e 测试用例,遵循以下规范:
a. 目录命名:使用中文 测试<功能描述> 格式,例如:
tests/e2e/测试新功能名称/b. test.md 格式:
## 前置条件(可选)
如有特殊前置条件在此说明
## 测试步骤
1. 打开页面 http://localhost:9999/dashboard
2. 等待页面加载完成
3. [具体的操作步骤]
4. 截图(关键状态描述)
5. [验证断言]
c. 编写原则:
d. 参考现有用例的风格:参考已有的测试用例写法保持一致
输出创建结果报告:
=== 测试用例创建报告 ===
已创建以下 e2e 测试用例:
1. tests/e2e/测试XXX/test.md
- 覆盖功能点:...
- 步骤数:N
创建完成后可使用以下命令执行:
/e2e tests/e2e/测试XXX
/e2e 命令。development
TypeScript严格模式检查
tools
Todo 管理技能,用于管理架构演进过程中的待办事项
testing
测试修复技能,用于分析和修复失败的测试用例
testing
测试创建技能,用于生成符合项目标准的测试用例