@zhouhao4221/devflow-skills 0.2.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -235
- package/install.js +406 -116
- package/package.json +2 -1
- package/plugins/api/skills/api/SKILL.md +102 -0
- package/plugins/api/skills/api-field-mapper/SKILL.md +95 -0
- package/plugins/api/skills/config/SKILL.md +140 -0
- package/plugins/api/skills/gen/SKILL.md +345 -0
- package/plugins/api/skills/help/SKILL.md +121 -0
- package/plugins/api/skills/import/SKILL.md +95 -0
- package/plugins/api/skills/map/SKILL.md +152 -0
- package/plugins/api/skills/search/SKILL.md +95 -0
- package/plugins/diag/skills/audit/SKILL.md +103 -0
- package/plugins/diag/skills/diag/SKILL.md +41 -0
- package/plugins/diag/skills/diagnose/SKILL.md +167 -0
- package/plugins/diag/skills/init/SKILL.md +142 -0
- package/plugins/diag/skills/stack-analyzer/SKILL.md +150 -0
- package/plugins/pm/skills/ask/SKILL.md +89 -0
- package/plugins/pm/skills/brief/SKILL.md +95 -0
- package/plugins/pm/skills/export/SKILL.md +93 -0
- package/plugins/pm/skills/help/SKILL.md +257 -0
- package/plugins/pm/skills/milestone/SKILL.md +102 -0
- package/plugins/pm/skills/monthly/SKILL.md +111 -0
- package/plugins/pm/skills/plan/SKILL.md +96 -0
- package/plugins/pm/skills/pm/SKILL.md +174 -0
- package/plugins/pm/skills/progress/SKILL.md +113 -0
- package/plugins/pm/skills/report-generator/SKILL.md +104 -0
- package/plugins/pm/skills/risk/SKILL.md +223 -0
- package/plugins/pm/skills/standup/SKILL.md +96 -0
- package/plugins/pm/skills/stats/SKILL.md +158 -0
- package/plugins/pm/skills/weekly/SKILL.md +157 -0
- package/plugins/req/skills/branch/SKILL.md +447 -0
- package/plugins/req/skills/cache/SKILL.md +232 -0
- package/plugins/req/skills/changelog/SKILL.md +187 -0
- package/plugins/req/skills/changelog-generator/SKILL.md +106 -0
- package/plugins/req/skills/code-impact-analyzer/SKILL.md +48 -0
- package/plugins/req/skills/commit/SKILL.md +308 -0
- package/plugins/req/skills/dev/SKILL.md +229 -0
- package/plugins/req/skills/dev-guide/SKILL.md +530 -0
- package/plugins/req/skills/do/SKILL.md +191 -0
- package/plugins/req/skills/done/SKILL.md +95 -0
- package/plugins/req/skills/edit/SKILL.md +187 -0
- package/plugins/req/skills/fix/SKILL.md +300 -0
- package/plugins/req/skills/help/SKILL.md +136 -0
- package/plugins/req/skills/init/SKILL.md +505 -0
- package/plugins/req/skills/issue/SKILL.md +237 -0
- package/plugins/req/skills/issue-guide/SKILL.md +125 -0
- package/plugins/req/skills/migrate/SKILL.md +128 -0
- package/plugins/req/skills/modules/SKILL.md +195 -0
- package/plugins/req/skills/natural-language-dispatcher/SKILL.md +545 -0
- package/plugins/req/skills/new/SKILL.md +172 -0
- package/plugins/req/skills/new-quick/SKILL.md +246 -0
- package/plugins/req/skills/pr/SKILL.md +157 -0
- package/plugins/req/skills/prd/SKILL.md +187 -0
- package/plugins/req/skills/prd-analyzer/SKILL.md +131 -0
- package/plugins/req/skills/prd-edit/SKILL.md +201 -0
- package/plugins/req/skills/projects/SKILL.md +115 -0
- package/plugins/req/skills/quick-fix-guide/SKILL.md +51 -0
- package/plugins/req/skills/release/SKILL.md +300 -0
- package/plugins/req/skills/release-rationale/SKILL.md +213 -0
- package/plugins/req/skills/req/SKILL.md +173 -0
- package/plugins/req/skills/requirement-analyzer/SKILL.md +274 -0
- package/plugins/req/skills/review/SKILL.md +201 -0
- package/plugins/req/skills/review-pr/SKILL.md +699 -0
- package/plugins/req/skills/show/SKILL.md +302 -0
- package/plugins/req/skills/specs/SKILL.md +99 -0
- package/plugins/req/skills/split/SKILL.md +164 -0
- package/plugins/req/skills/status/SKILL.md +184 -0
- package/plugins/req/skills/test/SKILL.md +431 -0
- package/plugins/req/skills/test-guide/SKILL.md +304 -0
- package/plugins/req/skills/test_new/SKILL.md +417 -0
- package/plugins/req/skills/test_regression/SKILL.md +298 -0
- package/plugins/req/skills/update/SKILL.md +131 -0
- package/plugins/req/skills/update-template/SKILL.md +203 -0
- package/plugins/req/skills/upgrade/SKILL.md +178 -0
- package/plugins/req/skills/use/SKILL.md +158 -0
- package/plugins/req/skills/version-bumper/SKILL.md +113 -0
- package/plugins/uat/skills/bug/SKILL.md +153 -0
- package/plugins/uat/skills/init/SKILL.md +88 -0
- package/plugins/uat/skills/new/SKILL.md +131 -0
- package/plugins/uat/skills/report/SKILL.md +48 -0
- package/plugins/uat/skills/run/SKILL.md +78 -0
- package/plugins/uat/skills/uat/SKILL.md +64 -0
- package/plugins/uat/skills/uat-executor/SKILL.md +299 -0
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: status
|
|
3
|
+
description: |
|
|
4
|
+
查看需求状态 - 详细状态和进度
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 查看需求状态
|
|
8
|
+
|
|
9
|
+
查看需求的详细状态和进度信息。
|
|
10
|
+
|
|
11
|
+
## 命令格式
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
/req:status [REQ-XXX]
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**说明**:编号可选,省略时自动选择最近活跃的需求。
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 执行流程
|
|
22
|
+
|
|
23
|
+
### 0. 自动识别需求
|
|
24
|
+
|
|
25
|
+
如果未提供 REQ-XXX 编号:
|
|
26
|
+
|
|
27
|
+
按修改时间排序扫描角色对应的 active 目录(readonly 用缓存,primary 优先本地不存在时用缓存,未绑定只用本地)。无结果时提示创建;唯一时自动选中;多个时列表让用户输入序号选择。
|
|
28
|
+
|
|
29
|
+
### 1. 解析存储路径(按角色)
|
|
30
|
+
|
|
31
|
+
读取 `.claude/settings.local.json` 的 `requirementProject` 和 `requirementRole`,按角色确定路径:
|
|
32
|
+
- `readonly`:根目录为 `~/.claude-requirements/projects/$PROJECT`
|
|
33
|
+
- `primary`:本地根目录为 `docs/requirements`,缓存为备用
|
|
34
|
+
- 未绑定:仅使用 `docs/requirements`
|
|
35
|
+
|
|
36
|
+
### 2. 查找需求文档(按角色)
|
|
37
|
+
|
|
38
|
+
**`primary` 角色**搜索位置(按优先级):
|
|
39
|
+
1. `$ACTIVE/REQ-XXX-*.md`(本地)
|
|
40
|
+
2. `$COMPLETED/REQ-XXX-*.md`(本地)
|
|
41
|
+
3. `$CACHE_ACTIVE/REQ-XXX-*.md`(本地不存在时)
|
|
42
|
+
4. `$CACHE_COMPLETED/REQ-XXX-*.md`(本地不存在时)
|
|
43
|
+
|
|
44
|
+
**`readonly` 角色**搜索位置:
|
|
45
|
+
1. `$ACTIVE/REQ-XXX-*.md`(缓存)
|
|
46
|
+
2. `$COMPLETED/REQ-XXX-*.md`(缓存)
|
|
47
|
+
|
|
48
|
+
如果未找到:
|
|
49
|
+
```
|
|
50
|
+
❌ 未找到需求:REQ-XXX
|
|
51
|
+
|
|
52
|
+
可用操作:
|
|
53
|
+
- 查看所有需求:/req
|
|
54
|
+
- 创建新需求:/req:new
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### 3. 解析需求文档
|
|
58
|
+
|
|
59
|
+
提取关键信息:
|
|
60
|
+
- 元信息
|
|
61
|
+
- 生命周期状态
|
|
62
|
+
- 功能清单进度
|
|
63
|
+
- 测试要点进度
|
|
64
|
+
- 文件改动清单
|
|
65
|
+
- 变更记录
|
|
66
|
+
|
|
67
|
+
### 4. 输出详细状态
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
需求状态:REQ-001 部门渠道关联
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
元信息
|
|
75
|
+
编号:REQ-001
|
|
76
|
+
状态:开发中
|
|
77
|
+
优先级:P1
|
|
78
|
+
创建日期:2026-01-07
|
|
79
|
+
负责人:-
|
|
80
|
+
数据来源:本地 (primary)
|
|
81
|
+
项目:my-saas-product
|
|
82
|
+
|
|
83
|
+
生命周期
|
|
84
|
+
[x] 草稿 2026-01-07
|
|
85
|
+
[x] 待评审 2026-01-07
|
|
86
|
+
[x] ✅ 评审通过 2026-01-07
|
|
87
|
+
[>] 开发中 2026-01-08 ← 当前
|
|
88
|
+
[ ] 测试中
|
|
89
|
+
[ ] 已完成
|
|
90
|
+
|
|
91
|
+
功能清单(4/6 完成)
|
|
92
|
+
[x] 部门渠道关联
|
|
93
|
+
[x] 渠道范围校验
|
|
94
|
+
[x] 获取可选渠道接口
|
|
95
|
+
[x] 订单数据过滤
|
|
96
|
+
[ ] Dashboard数据过滤 ← 进行中
|
|
97
|
+
[ ] 缓存机制
|
|
98
|
+
|
|
99
|
+
测试要点(0/8 完成)
|
|
100
|
+
[ ] 部门创建时关联渠道
|
|
101
|
+
[ ] 部门更新时修改渠道关联
|
|
102
|
+
[ ] 上级部门未设置渠道,下级可任意选择
|
|
103
|
+
[ ] 上级部门已设置渠道,下级必须设置且为子集
|
|
104
|
+
[ ] 选择超出范围的渠道报错
|
|
105
|
+
[ ] 订单列表按渠道正确过滤
|
|
106
|
+
[ ] Dashboard 数据按渠道正确过滤
|
|
107
|
+
[ ] 缓存正确失效
|
|
108
|
+
|
|
109
|
+
文件改动(8/12 完成)
|
|
110
|
+
已完成:
|
|
111
|
+
internal/sys/model/sys_dept_channel_model.go ✅
|
|
112
|
+
internal/sys/store/sys_dept_channel_store.go ✅
|
|
113
|
+
internal/sys/biz/dept_channel.go ✅
|
|
114
|
+
internal/sys/biz/sys_dept.go ✅
|
|
115
|
+
internal/sys/controller/v1/sys_dept.go ✅
|
|
116
|
+
pkg/api/core/v1/sys_dept.go ✅
|
|
117
|
+
internal/sys/router.go ✅
|
|
118
|
+
internal/oms/store/sales_order_store.go ✅
|
|
119
|
+
|
|
120
|
+
待处理:
|
|
121
|
+
internal/oms/biz/sales_order_biz.go
|
|
122
|
+
internal/dashboard/store/sales_dashboard_store.go
|
|
123
|
+
internal/dashboard/biz/sales_dashboard_biz.go
|
|
124
|
+
docs/swagger/docs.go
|
|
125
|
+
|
|
126
|
+
变更记录
|
|
127
|
+
2026-01-07 初始版本
|
|
128
|
+
|
|
129
|
+
评审记录
|
|
130
|
+
2026-01-07 张三 通过 - 方案合理,可以开发
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
可用操作:
|
|
135
|
+
# primary 角色显示完整操作
|
|
136
|
+
- 继续开发:/req:dev REQ-001
|
|
137
|
+
- 编辑需求:/req:edit REQ-001
|
|
138
|
+
- 进入测试:/req:test REQ-001
|
|
139
|
+
|
|
140
|
+
# readonly 角色仅显示只读操作
|
|
141
|
+
# - 查看需求列表:/req
|
|
142
|
+
# - 查看模块:/req:modules
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## 简洁模式
|
|
148
|
+
|
|
149
|
+
使用 `--brief` 参数输出简洁信息:
|
|
150
|
+
|
|
151
|
+
```
|
|
152
|
+
/req:status REQ-001 --brief
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
输出:
|
|
156
|
+
```
|
|
157
|
+
REQ-001 部门渠道关联
|
|
158
|
+
状态:开发中 | 功能:4/6 | 测试:0/8
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## 批量查看
|
|
164
|
+
|
|
165
|
+
查看所有活跃需求状态:
|
|
166
|
+
|
|
167
|
+
```
|
|
168
|
+
/req:status --all
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
输出:
|
|
172
|
+
```
|
|
173
|
+
活跃需求状态一览
|
|
174
|
+
|
|
175
|
+
| 编号 | 标题 | 状态 | 功能进度 | 测试进度 |
|
|
176
|
+
|------|------|------|---------|---------|
|
|
177
|
+
| REQ-001 | 部门渠道关联 | 开发中 | 4/6 | 0/8 |
|
|
178
|
+
| REQ-002 | 用户积分系统 | 待评审 | - | - |
|
|
179
|
+
| REQ-003 | 订单导出优化 | 草稿 | - | - |
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## 用户输入
|
|
183
|
+
|
|
184
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,431 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: test
|
|
3
|
+
description: |
|
|
4
|
+
需求测试 - 综合测试验证(回归 + 新建 + 交互验证)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
> **重要**:本命令的测试文件位置、运行命令、环境启动命令均从项目 `docs/prompt/testing.md` 读取,不内置任何项目细节。文件不存在时打印创建提示(非阻塞),并回退到 `docs/prompt/architecture.md` 的「测试规范」章节。
|
|
8
|
+
|
|
9
|
+
# 需求测试
|
|
10
|
+
|
|
11
|
+
针对指定需求执行综合测试,包含三个层次:运行已有测试、引导创建新测试、交互验证测试要点。
|
|
12
|
+
|
|
13
|
+
> **Audience:** Engineer
|
|
14
|
+
> 存储路径和缓存同步规则见 [_storage.md](./_storage.md)
|
|
15
|
+
|
|
16
|
+
## 命令格式
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
/req:test [REQ-XXX] [选项]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
- 省略编号时自动选择「开发中」或「测试中」的需求
|
|
23
|
+
- 多个候选时让用户选择
|
|
24
|
+
|
|
25
|
+
### 选项
|
|
26
|
+
|
|
27
|
+
| 选项 | 说明 |
|
|
28
|
+
|-----|------|
|
|
29
|
+
| `--failed` | 仅运行上次失败的测试 |
|
|
30
|
+
| `--skip-ut` | 跳过 UT 阶段 |
|
|
31
|
+
| `--skip-api` | 跳过 API 测试阶段 |
|
|
32
|
+
| `--skip-e2e` | 跳过 E2E 测试阶段 |
|
|
33
|
+
| `--force` | 某阶段失败时继续后续阶段 |
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 总体流程
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
1. 选择需求 & 前置检查
|
|
41
|
+
2. 提取测试要点(业务维度)
|
|
42
|
+
3. 识别变更范围(代码维度)
|
|
43
|
+
4. 阶段一:UT
|
|
44
|
+
回归:运行变更相关的已有 UT
|
|
45
|
+
新建:缺失时引导创建
|
|
46
|
+
5. 阶段二:API 测试
|
|
47
|
+
回归:运行已有 API 测试
|
|
48
|
+
新建:缺失时引导创建
|
|
49
|
+
6. 阶段三:E2E 测试
|
|
50
|
+
回归:运行已有 E2E 测试
|
|
51
|
+
新建:缺失时引导创建
|
|
52
|
+
7. 交互验证:自动化未覆盖的测试要点
|
|
53
|
+
8. 更新状态为「测试中」& 记录结果
|
|
54
|
+
9. 汇总报告
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
每个阶段的模式都是:**先跑已有 → 发现缺失 → 引导新建**。
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## 详细流程
|
|
62
|
+
|
|
63
|
+
### 1. 选择需求
|
|
64
|
+
|
|
65
|
+
- 指定编号 → 使用该需求
|
|
66
|
+
- 未指定 → 查找可测试需求(状态为开发中/测试中)
|
|
67
|
+
|
|
68
|
+
### 2. 前置检查
|
|
69
|
+
|
|
70
|
+
- 状态必须为「开发中」或「测试中」
|
|
71
|
+
- 检查功能点完成情况,有未完成时警告
|
|
72
|
+
|
|
73
|
+
### 3. 提取测试要点
|
|
74
|
+
|
|
75
|
+
从需求文档提取测试要点,作为整个测试过程的验证基准:
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
需求测试:REQ-001 <需求标题>
|
|
79
|
+
|
|
80
|
+
测试要点(共 N 项):
|
|
81
|
+
|
|
82
|
+
API 测试:
|
|
83
|
+
- [ ] <API 测试点 1>
|
|
84
|
+
- [ ] <API 测试点 2>
|
|
85
|
+
|
|
86
|
+
业务规则测试:
|
|
87
|
+
- [ ] <业务规则测试点 1>
|
|
88
|
+
- [ ] <业务规则测试点 2>
|
|
89
|
+
|
|
90
|
+
数据权限测试:
|
|
91
|
+
- [ ] <数据权限测试点 1>
|
|
92
|
+
|
|
93
|
+
其他测试:
|
|
94
|
+
- [ ] <其他测试点>
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### 4. 识别变更范围
|
|
98
|
+
|
|
99
|
+
从需求文档提取「文件改动清单」,定位本次需求涉及的源文件:
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
分析变更范围...
|
|
103
|
+
|
|
104
|
+
从需求文档的「文件改动清单」提取:
|
|
105
|
+
<source-file-1>
|
|
106
|
+
<source-file-2>
|
|
107
|
+
<source-file-3>
|
|
108
|
+
<source-file-N>
|
|
109
|
+
|
|
110
|
+
关联的测试文件:
|
|
111
|
+
<test-file-1> ✅ 存在
|
|
112
|
+
<test-file-2> ✅ 存在
|
|
113
|
+
<test-file-3> ❌ 不存在
|
|
114
|
+
<test-file-N> ✅ 存在
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**变更范围识别规则**:
|
|
118
|
+
|
|
119
|
+
1. **优先从需求文档**获取「文件改动清单」中列出的文件
|
|
120
|
+
2. 如果文档中没有明确列出,则通过 `git diff` 对比当前分支与主分支的变更文件
|
|
121
|
+
3. 按 `docs/prompt/testing.md` 定位关联测试文件
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
### 5. 阶段一:UT(变更相关)
|
|
126
|
+
|
|
127
|
+
**仅运行本次需求变更相关的单元测试。**
|
|
128
|
+
|
|
129
|
+
#### 5.1 回归 — 运行已有 UT
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
阶段一:单元测试(变更相关)
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
运行已有 UT...
|
|
137
|
+
|
|
138
|
+
<docs/prompt/testing.md 中定义的 UT 运行命令>
|
|
139
|
+
|
|
140
|
+
<test-file-1>
|
|
141
|
+
<TestCase_1> ✅ PASS
|
|
142
|
+
<TestCase_2> ✅ PASS
|
|
143
|
+
<TestCase_3> ✅ PASS
|
|
144
|
+
|
|
145
|
+
<test-file-2>
|
|
146
|
+
<TestCase_4> ✅ PASS
|
|
147
|
+
<TestCase_5> ✅ PASS
|
|
148
|
+
|
|
149
|
+
UT 回归结果:N/N 通过 ✅
|
|
150
|
+
|
|
151
|
+
测试要点覆盖:
|
|
152
|
+
- [x] <测试要点> ← <对应测试用例>
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
自动化测试通过后,将能匹配的测试要点标记为已覆盖。
|
|
156
|
+
|
|
157
|
+
#### 5.2 新建 — 引导补充缺失 UT
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
⚠️ 以下变更文件缺少 UT:
|
|
161
|
+
- <test-file-missing>
|
|
162
|
+
|
|
163
|
+
y → 执行 /req:test_new REQ-001 --type=ut 的流程,生成缺失的测试文件
|
|
164
|
+
n → 记录为待补充,继续后续阶段
|
|
165
|
+
skip → 跳过,不再提示
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
### 6. 阶段二:API 测试
|
|
171
|
+
|
|
172
|
+
#### 6.0 环境检查
|
|
173
|
+
|
|
174
|
+
API 测试需要 `docs/prompt/testing.md` 中定义的测试环境:
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
检查测试环境...
|
|
178
|
+
<依赖服务 1> ✅ 运行中
|
|
179
|
+
<依赖服务 2> ✅ 运行中
|
|
180
|
+
<后端服务> ✅ 运行中
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
如果未启动:
|
|
184
|
+
|
|
185
|
+
```
|
|
186
|
+
⚠️ 测试环境未就绪
|
|
187
|
+
|
|
188
|
+
按 docs/prompt/testing.md 测试环境配置启动服务...
|
|
189
|
+
<docs/prompt/testing.md 中定义的测试环境启动命令>
|
|
190
|
+
|
|
191
|
+
等待服务就绪...
|
|
192
|
+
<依赖服务 1> ✅ 就绪
|
|
193
|
+
<依赖服务 2> ✅ 就绪
|
|
194
|
+
<后端服务> ✅ 就绪
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
#### 6.1 回归 — 运行已有 API 测试
|
|
198
|
+
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
阶段二:API 测试
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
运行已有 API 测试...
|
|
205
|
+
|
|
206
|
+
<docs/prompt/testing.md 中定义的 API 测试运行命令>
|
|
207
|
+
|
|
208
|
+
<api-test-file>
|
|
209
|
+
<TestCase_API_1> ✅ PASS
|
|
210
|
+
<TestCase_API_2> ✅ PASS
|
|
211
|
+
<TestCase_API_3> ✅ PASS
|
|
212
|
+
|
|
213
|
+
API 回归结果:N/N 通过 ✅
|
|
214
|
+
|
|
215
|
+
测试要点覆盖:
|
|
216
|
+
- [x] <API 测试要点> ← <对应测试用例>
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
#### 6.2 新建 — 引导补充缺失 API 测试
|
|
220
|
+
|
|
221
|
+
```
|
|
222
|
+
⚠️ 以下测试要点尚未被 API 测试覆盖:
|
|
223
|
+
- [ ] <未覆盖的 API 测试要点>
|
|
224
|
+
|
|
225
|
+
y → 执行 /req:test_new REQ-001 --type=api 的流程
|
|
226
|
+
n → 记录为待补充,继续后续阶段
|
|
227
|
+
skip → 跳过
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
如果 API 测试目录下完全没有相关测试文件:
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
⚠️ 未找到需求相关的 API 测试文件
|
|
234
|
+
|
|
235
|
+
y → 执行 /req:test_new REQ-001 --type=api
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
### 7. 阶段三:E2E 测试
|
|
241
|
+
|
|
242
|
+
#### 7.0 环境检查
|
|
243
|
+
|
|
244
|
+
E2E 测试额外需要前端服务:
|
|
245
|
+
|
|
246
|
+
```
|
|
247
|
+
检查测试环境...
|
|
248
|
+
<依赖服务 1> ✅ 运行中
|
|
249
|
+
<依赖服务 2> ✅ 运行中
|
|
250
|
+
<后端服务> ✅ 运行中
|
|
251
|
+
<前端服务> ❌ 未启动
|
|
252
|
+
|
|
253
|
+
启动前端服务...
|
|
254
|
+
<docs/prompt/testing.md 中定义的前端启动命令>
|
|
255
|
+
<前端服务> ✅ 就绪
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
#### 7.1 回归 — 运行已有 E2E 测试
|
|
259
|
+
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
阶段三:E2E 测试
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
运行已有 E2E 测试...
|
|
266
|
+
|
|
267
|
+
<docs/prompt/testing.md 中定义的 E2E 运行命令>
|
|
268
|
+
|
|
269
|
+
✅ <E2E 场景描述 1> (Xs)
|
|
270
|
+
✅ <E2E 场景描述 2> (Xs)
|
|
271
|
+
|
|
272
|
+
E2E 回归结果:N/N 通过 ✅
|
|
273
|
+
|
|
274
|
+
测试要点覆盖:
|
|
275
|
+
- [x] <E2E 测试要点> ← <对应场景名>
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
#### 7.2 新建 — 引导补充缺失 E2E 测试
|
|
279
|
+
|
|
280
|
+
```
|
|
281
|
+
⚠️ 以下用户流程尚未被 E2E 覆盖:
|
|
282
|
+
- [ ] <未覆盖的用户流程>
|
|
283
|
+
|
|
284
|
+
y → 执行 /req:test_new REQ-001 --type=e2e
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
如果 E2E 测试目录下完全没有相关测试文件:
|
|
288
|
+
|
|
289
|
+
```
|
|
290
|
+
⚠️ 未找到需求相关的 E2E 测试文件
|
|
291
|
+
|
|
292
|
+
y → 执行 /req:test_new REQ-001 --type=e2e
|
|
293
|
+
skip → 跳过 E2E 阶段
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
### 8. 交互验证
|
|
299
|
+
|
|
300
|
+
经过 UT/API/E2E 三个阶段后,检查测试要点的覆盖情况。对于**自动化测试未覆盖到的要点**,引导用户手动验证:
|
|
301
|
+
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
交互验证:自动化未覆盖的测试要点
|
|
305
|
+
|
|
306
|
+
|
|
307
|
+
已自动覆盖 M/N 项,剩余 K 项需手动验证:
|
|
308
|
+
|
|
309
|
+
【测试点 X】<测试要点描述>
|
|
310
|
+
|
|
311
|
+
验证步骤:
|
|
312
|
+
1. <操作步骤 1>
|
|
313
|
+
2. <操作步骤 2>
|
|
314
|
+
3. <预期结果>
|
|
315
|
+
|
|
316
|
+
验证结果:
|
|
317
|
+
- [ ] 通过
|
|
318
|
+
- [ ] 失败(请描述问题)
|
|
319
|
+
- [ ] 跳过
|
|
320
|
+
|
|
321
|
+
请输入结果:
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
逐项引导验证,直到所有未覆盖要点完成。
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
328
|
+
### 9. 更新状态、记录测试结果并同步缓存
|
|
329
|
+
|
|
330
|
+
测试完成后再更新状态:
|
|
331
|
+
- 修改元信息状态为「测试中」
|
|
332
|
+
- 勾选生命周期「测试中」
|
|
333
|
+
- 更新需求文档的测试要点(勾选通过项,记录日期)
|
|
334
|
+
- 记录自动化覆盖情况
|
|
335
|
+
- **同步到全局缓存**
|
|
336
|
+
|
|
337
|
+
### 10. 汇总报告
|
|
338
|
+
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
综合测试报告 - REQ-001 <需求标题>
|
|
342
|
+
|
|
343
|
+
|
|
344
|
+
自动化测试:
|
|
345
|
+
|
|
346
|
+
阶段 已有 新建 通过 失败 结果
|
|
347
|
+
|
|
348
|
+
UT N N N N ✅ 通过
|
|
349
|
+
API N N N N ✅ 通过
|
|
350
|
+
E2E N N N N ✅ 通过
|
|
351
|
+
|
|
352
|
+
小计 N N N N ✅ 通过
|
|
353
|
+
|
|
354
|
+
|
|
355
|
+
测试要点覆盖:
|
|
356
|
+
|
|
357
|
+
测试要点 覆盖方式 结果
|
|
358
|
+
|
|
359
|
+
<测试要点 1> API 自动 ✅ 通过
|
|
360
|
+
<测试要点 2> UT 自动 ✅ 通过
|
|
361
|
+
<测试要点 3> E2E 自动 ✅ 通过
|
|
362
|
+
<测试要点 4> 手动验证 ✅ 通过
|
|
363
|
+
|
|
364
|
+
合计 N/N ✅ 全通过
|
|
365
|
+
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
### 11. 下一步操作
|
|
369
|
+
|
|
370
|
+
#### 全部通过
|
|
371
|
+
|
|
372
|
+
```
|
|
373
|
+
测试全部通过!
|
|
374
|
+
|
|
375
|
+
REQ-001 <需求标题>
|
|
376
|
+
状态:测试中
|
|
377
|
+
自动化:N/N 通过
|
|
378
|
+
测试要点:N/N 覆盖
|
|
379
|
+
|
|
380
|
+
下一步:
|
|
381
|
+
- 完成需求:/req:done REQ-001
|
|
382
|
+
- 全量回归:/req:test_regression
|
|
383
|
+
- 重新测试:/req:test REQ-001
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
#### 存在失败
|
|
387
|
+
|
|
388
|
+
```
|
|
389
|
+
⚠️ 存在测试失败项
|
|
390
|
+
|
|
391
|
+
失败阶段:<阶段名>
|
|
392
|
+
失败用例:
|
|
393
|
+
- ❌ <失败用例名>
|
|
394
|
+
文件:<test-file>:<line>
|
|
395
|
+
原因:<失败原因描述>
|
|
396
|
+
|
|
397
|
+
未覆盖测试要点:
|
|
398
|
+
- ❌ <测试要点>(手动验证失败)
|
|
399
|
+
问题:<问题描述>
|
|
400
|
+
|
|
401
|
+
下一步:
|
|
402
|
+
- 返回修复:/req:dev REQ-001
|
|
403
|
+
- 仅重跑失败:/req:test REQ-001 --failed
|
|
404
|
+
- 忽略继续:/req:test REQ-001 --force
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
---
|
|
408
|
+
|
|
409
|
+
## 测试模式说明
|
|
410
|
+
|
|
411
|
+
### 综合测试(默认)
|
|
412
|
+
按顺序执行 UT → API → E2E → 交互验证,某阶段失败时停止(除非 `--force`)。
|
|
413
|
+
|
|
414
|
+
### 增量测试
|
|
415
|
+
仅运行上次失败的用例:`/req:test REQ-XXX --failed`
|
|
416
|
+
|
|
417
|
+
### 跳过某阶段
|
|
418
|
+
```bash
|
|
419
|
+
/req:test REQ-001 --skip-e2e # 跳过 E2E
|
|
420
|
+
/req:test REQ-001 --skip-ut # 跳过 UT
|
|
421
|
+
/req:test REQ-001 --skip-api # 跳过 API
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
### 强制继续
|
|
425
|
+
某阶段失败时继续后续阶段:`/req:test REQ-XXX --force`(不推荐)
|
|
426
|
+
|
|
427
|
+
---
|
|
428
|
+
|
|
429
|
+
## 用户输入
|
|
430
|
+
|
|
431
|
+
$ARGUMENTS
|