case-migratelisted
Install: claude install-skill tlzmw001/aitest-kit
# 用例迁移
把 `$source_cases` 中的外部/历史测试用例迁移为 AITest Markdown suite 用例。输出目录为 `$suite_dir`;未指定时,建议使用 `test_workspace/suites/{target}/{suite}/`,并由用户确认 suite 名称。
## 定位
```
外部旧用例
↓
case-migrate ← 本 skill
↓
AITest Markdown suite + 迁移报告
↓
人工 review
↓
test-scaffold / test-codegen
```
本 skill 只负责“旧用例 → 标准 Markdown 用例”的语义迁移,不生成 pytest,不写 fixture/profile,不修改 generated,不修改待测系统。
## 核心原则
1. **不丢信息**:每条旧用例都必须出现在迁移报告中;无法迁移也要说明原因。
2. **不改语义**:不能把旧用例中没有明确写出的状态码、错误码、字段值、业务规则补成确定断言。
3. **不隐藏阻塞**:缺接口、缺测试数据、缺 fixture 能力、依赖执行顺序、预期模糊等情况必须显式标记。
4. **可追溯**:迁移后的每条用例必须保留原始用例 ID、标题或来源位置。
5. **先 review 再接线**:迁移产物必须经过人工 review 后,再进入 `test-scaffold` / `test-codegen`。
## 输入读取
优先读取用户指定的 `$source_cases`。支持常见形态:
- Excel/CSV/TSV 导出的结构化用例
- Markdown/Word 导出文本
- 测试平台导出内容
- 自由文本测试点、checklist、验收点
同时读取必要的 AITest 上下文:
- `aitest_config/aitest.yaml`:workspace 路径和 codegen 规则
- `aitest_config/refs/case-format.md`:目标 Markdown 格式
- `test_workspace/knowledge/` 中与 `$target/$module` 相关的 L1/L2 文档(存在时)
- 已有 suite 用例(如果是追加迁移)
禁止读取或写入:
- 不读取待测系统业务实现源码,除非用户明确要求
- 不写 `test_workspace/generated/`
- 不写真实 token、账号密码、API key、生产 URL
- 不修改 `.env` 或本地密钥文件
## Step 1:识别原始格式
先判断旧用例字段和结构,不直接转换。
输出字段映射草案:
| 原始字段 | AITest 归属 | 说明 |
|---|---|---|
| 用例编号 | 来源用例 / TC-ID 映射 | 保留原始编号 |
| 用例标题 | 标题 | 必须保留原意 |
| 前置条件 | 标准前置 / 测试资源 / 可行性存疑 | 拆分 env、resource、state |
| 操作步骤 | 场景变量 / 流程 | 不直接写成断言 |
| 测试数据 | 请求覆盖 / variables / 待确认项 | 敏感值必须脱敏 |
| 预期结果 | 断言 / 待确认项 | 不明确则标 `[?]` |
| 自动化状态 | 标记 | manual / skipped / 可行性存疑 |
| 备注/链接/负责人 | 迁移报告