| name | test |
| description | Analyze current git changes and run automated tests — CLI layer (curl API + file checks) for data integrity, Playwright layer (CDP to Electron) for UI interaction and visual structure verification. |
| argument-hint | [可选:指定测试范围,如 '仅后端'、'包含UI'、'全部'] |
LightyDesign 自动化测试 Skill
概述
开发完成后分析 git diff,分层执行测试,输出结构化报告。
- CLI 层(必选):
curl 直连 API + Read 工具检查文件 → 数据完整性
- Playwright 层(按需):CDP 连接 Electron → UI 交互 + DOM/样式验证
流程
Step 1: ANALYZE — 分析变更
运行 git diff 获取变更文件。根据爆炸半径规则推断测试范围:
| 变更路径 | 推断测试范围 |
|---|
src/LightyDesign.Core/Models/* | 全量——领域模型影响所有上层 |
src/LightyDesign.Core/ValueParsing/* | 值解析 + Sheet 读写 + 代码导出 |
src/LightyDesign.Core/Validation/* | 校验 + Sheet 操作验证 |
src/LightyDesign.Generator/* | 代码导出端到端(全工作簿/全流程图) |
src/LightyDesign.DesktopHost/* | API 冒烟 + 受影响端点的操作闭环 |
src/LightyDesign.Application/* | 受影响服务的全链路 |
app/desktop/src/*/components/* | 该组件 UI 交互 + 关联数据流 |
app/desktop/src/*/hooks/* | 关联组件的状态变更 + 数据流 |
app/desktop/src/styles/* | 对应组件的 Playwright 布局验证 |
app/desktop/electron/* | API 冒烟 + Electron 窗口行为 |
读取 AgentSkills/test/knowledge/boundary-checklist.md,匹配适用的边界条件。
Step 2: PLAN — 生成测试计划
根据分析结果和边界条件清单,生成测试计划。向用户展示概要(不超 10 行),格式:
### 测试计划
**范围**: Core/ValueParsing
**CLI 层** (5 项):
1. API 健康检查
2. Sheet schema 读取
3. 行补丁 dry-run → 正式写入 → 回读验证
4. 列类型验证
5. 代码导出端到端
**Playwright 层**: 跳过(无前端变更)
Step 3: EXECUTE — 执行测试
前提条件检查
确认 DesktopHost 已运行(REST API 在 5000 端口,不是 MCP 端口 39231):
curl -sf http://127.0.0.1:5000/api/health
如果未响应,尝试启动 DesktopHost:
dotnet run --project src/LightyDesign.DesktopHost/LightyDesign.DesktopHost.csproj --no-launch-profile --urls http://127.0.0.1:5000 &
等待最多 8 秒后重试健康检查。
测试工作区准备
如果没有可用工作区,创建一个:
mkdir -p /d/Temp
curl -s -X POST "http://127.0.0.1:5000/api/workspace/create" \
-H "Content-Type: application/json" \
-d '{"parentDirectoryPath":"D:/Temp","workspaceName":"LightyTest"}'
后续测试使用 workspacePath=D:/Temp/LightyTest。
CLI 层(必选执行)
-
API 冒烟测试 — 调用健康检查和工作区基础端点,检查 HTTP 状态码
-
操作闭环验证 — 对涉及的写操作执行:dryRun → 正式写入 → 回读 → 文件对比
- 读取
AgentSkills/test/knowledge/api-endpoints.md 获取正确的 curl 命令格式
- 如果没有可用工作区,按照前提条件中的步骤创建测试工作区
- 所有 curl 命令通过 Bash 工具执行
-
代码导出端到端 — 如果涉及 Generator 或 CodegenService:
- 触发代码导出 API
- 验证输出文件存在
- 可选:与上次基线 diff
-
边界条件验证 — 从 boundary-checklist.md 匹配的边界场景逐项验证
Playwright 层(条件执行)
仅当变更涉及前端文件时启用。
- 检查 CDP 端口:
curl -s http://localhost:9222/json/version
-
如果 CDP 不可用,输出 "Playwright 层跳过:Electron CDP 端口未响应,请确认已添加 --remote-debugging-port=9222" 并继续
-
如果 CDP 可用,读取 AgentSkills/test/knowledge/playwright-patterns.md 获取操作模式
-
通过 Bash 执行 Playwright 脚本(使用 npx playwright 或 node inline script)
-
操作后验证 DOM 状态、布局数值、样式计算值
Step 4: REPORT — 输出报告
### AI 测试报告
**变更范围**: Core/ValueParsing (3 files)
**CLI 层** (数据完整性):
✓ API 健康检查
✓ Sheet schema 读取
✓ 行补丁 dryRun/写入/回读
✓ 边界:空值列
✓ 边界:RawObject 透传
✓ 代码导出端到端
**Playwright 层** (UI 交互):
跳过(无前端变更)
**结果**: 6/6 通过, 0 失败, 0 跳过
**建议**: 无
关键规则
- CLI 总是先于 Playwright — 如果 CLI 有失败,报告后询问是否继续
- curl 不要用 -k/--insecure — 全为本地 localhost 通信
- 测试使用独立工作区 — 避免污染用户真实数据
- 不维护测试脚本文件 — 每次根据当前 diff 动态生成
- API 端点格式参考 api-endpoints.md — 确保 curl 命令的 URL 和请求体格式正确
- Playwright 连接失败不阻塞 — 标注跳过原因后继续