@zhouhao4221/devflow-skills 0.3.6 → 0.3.7
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/package.json +1 -1
- package/plugins/diag/templates/services.yaml.template +31 -0
- package/plugins/req/skills/branch/SKILL.md +48 -377
- package/plugins/req/skills/dev/SKILL.md +1 -1
- package/plugins/req/skills/dev-guide/SKILL.md +74 -399
- package/plugins/req/skills/do/SKILL.md +1 -1
- package/plugins/req/skills/done/SKILL.md +2 -2
- package/plugins/req/skills/edit/SKILL.md +1 -1
- package/plugins/req/skills/fix/SKILL.md +1 -1
- package/plugins/req/skills/init/SKILL.md +66 -430
- package/plugins/req/skills/issue/SKILL.md +1 -1
- package/plugins/req/skills/migrate/SKILL.md +1 -1
- package/plugins/req/skills/natural-language-dispatcher/SKILL.md +78 -438
- package/plugins/req/skills/new/SKILL.md +1 -1
- package/plugins/req/skills/pr/SKILL.md +1 -1
- package/plugins/req/skills/prd/SKILL.md +1 -1
- package/plugins/req/skills/prd-edit/SKILL.md +1 -1
- package/plugins/req/skills/release/SKILL.md +1 -1
- package/plugins/req/skills/review/SKILL.md +1 -1
- package/plugins/req/skills/review-pr/SKILL.md +74 -601
- package/plugins/req/skills/test/SKILL.md +41 -355
- package/plugins/req/skills/test_new/SKILL.md +36 -356
- package/plugins/req/skills/test_regression/SKILL.md +1 -1
- package/plugins/req/skills/update-template/SKILL.md +1 -1
- package/plugins/req/skills/use/SKILL.md +1 -1
- package/plugins/req/templates/claude-md-snippets/frontend-react.md +48 -0
- package/plugins/req/templates/claude-md-snippets/generic.md +43 -0
- package/plugins/req/templates/claude-md-snippets/go-backend.md +47 -0
- package/plugins/req/templates/claude-md-snippets/java-backend.md +46 -0
- package/plugins/req/templates/docker-compose.test.yml +84 -0
- package/plugins/req/templates/index-template.md +60 -0
- package/plugins/req/templates/module-template.md +79 -0
- package/plugins/req/templates/prd-template.md +338 -0
- package/plugins/req/templates/quick-template.md +71 -0
- package/plugins/req/templates/release-prompt-template.md +51 -0
- package/plugins/req/templates/requirement-template.md +256 -0
- package/plugins/req/templates/scripts/test-env.sh +226 -0
- package/plugins/req/templates/tests/e2e/playwright.config.ts +86 -0
- package/plugins/uat/templates/flow-template.md +116 -0
- package/plugins/uat/templates/testid-convention.md +42 -0
|
@@ -3,31 +3,26 @@ name: test_new
|
|
|
3
3
|
description: 创建测试 - 为新功能编写自动化测试用例或手动测试用例文档
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
> **重要**:本命令的测试文件位置、运行命令、代码示例均从项目 CLAUDE.md 的「测试规范」章节读取,不内置任何项目细节。
|
|
7
|
-
|
|
8
6
|
# 创建测试
|
|
9
7
|
|
|
10
|
-
|
|
8
|
+
为新开发的功能创建自动化测试用例,包括 UT、API 测试和 E2E 测试。
|
|
11
9
|
|
|
12
|
-
>
|
|
10
|
+
> 测试文件位置、运行命令、代码示例从项目 `docs/prompt/testing.md` 和 CLAUDE.md「测试规范」读取。
|
|
13
11
|
|
|
14
12
|
## 命令格式
|
|
15
13
|
|
|
16
14
|
```
|
|
17
|
-
/req:test_new [REQ-XXX] [--type=ut|api|e2e|all]
|
|
15
|
+
/req:test_new [REQ-XXX] [--type=ut|api|e2e|all|manual] [--dry-run]
|
|
18
16
|
```
|
|
19
17
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
|
23
|
-
|
|
24
|
-
| `
|
|
25
|
-
| `--type=
|
|
26
|
-
| `--type=
|
|
27
|
-
| `--
|
|
28
|
-
| `--type=all` | 创建所有类型测试 | `/req:test_new --type=all` |
|
|
29
|
-
| `--type=manual` | 生成人工复测用例文档 | `/req:test_new --type=manual` |
|
|
30
|
-
| `--dry-run` | 预览不实际创建 | `/req:test_new --dry-run` |
|
|
18
|
+
| 参数 | 说明 |
|
|
19
|
+
|------|------|
|
|
20
|
+
| `--type=ut` | 仅单元测试 |
|
|
21
|
+
| `--type=api` | 仅 API 测试 |
|
|
22
|
+
| `--type=e2e` | 仅 E2E 测试 |
|
|
23
|
+
| `--type=all` | 所有类型 |
|
|
24
|
+
| `--type=manual` | 生成人工复测用例文档 |
|
|
25
|
+
| `--dry-run` | 预览不实际创建 |
|
|
31
26
|
|
|
32
27
|
---
|
|
33
28
|
|
|
@@ -35,379 +30,64 @@ description: 创建测试 - 为新功能编写自动化测试用例或手动测
|
|
|
35
30
|
|
|
36
31
|
### 1. 选择需求
|
|
37
32
|
|
|
38
|
-
|
|
39
|
-
- 未指定 → 查找「开发中」或「测试中」的需求
|
|
40
|
-
- 多个候选 → 让用户选择
|
|
33
|
+
指定编号 → 使用;未指定 → 查找「开发中/测试中」的需求,多个候选让用户选择。
|
|
41
34
|
|
|
42
35
|
### 2. 分析需求文档
|
|
43
36
|
|
|
44
|
-
|
|
45
|
-
分析需求文档...
|
|
46
|
-
|
|
47
|
-
需求:REQ-001 <需求标题>
|
|
48
|
-
状态:开发中
|
|
49
|
-
|
|
50
|
-
功能清单:
|
|
51
|
-
1. <功能点 1>
|
|
52
|
-
2. <功能点 2>
|
|
53
|
-
3. <功能点 3>
|
|
54
|
-
|
|
55
|
-
涉及文件:
|
|
56
|
-
<source-file-1>
|
|
57
|
-
<source-file-2>
|
|
58
|
-
<source-file-3>
|
|
59
|
-
<source-file-N>
|
|
60
|
-
|
|
61
|
-
识别测试点:
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
类型 测试点 数量
|
|
65
|
-
|
|
66
|
-
UT 业务层方法 N
|
|
67
|
-
API 接口端点 N
|
|
68
|
-
E2E 用户流程 N
|
|
69
|
-
|
|
70
|
-
```
|
|
37
|
+
提取功能清单、涉及文件,识别三类测试点(UT/API/E2E)及其数量。
|
|
71
38
|
|
|
72
39
|
### 3. 选择测试类型
|
|
73
40
|
|
|
74
|
-
|
|
75
|
-
请选择要创建的测试类型:
|
|
76
|
-
|
|
77
|
-
[1] 单元测试 (UT)
|
|
78
|
-
- 测试业务层逻辑
|
|
79
|
-
- 使用 Mock 隔离依赖
|
|
80
|
-
- 预计生成 N 个测试用例
|
|
81
|
-
|
|
82
|
-
[2] API 测试
|
|
83
|
-
- 测试接口端点
|
|
84
|
-
- 验证请求/响应/错误码
|
|
85
|
-
- 预计生成 N 个测试文件
|
|
86
|
-
|
|
87
|
-
[3] E2E 测试
|
|
88
|
-
- 测试完整用户流程
|
|
89
|
-
- 端到端场景验证
|
|
90
|
-
- 预计生成 N 个测试文件
|
|
91
|
-
|
|
92
|
-
[4] 全部自动化
|
|
93
|
-
|
|
94
|
-
[5] 手动测试用例文档 (manual)
|
|
95
|
-
- 供测试人员逐条复测
|
|
96
|
-
- 覆盖后端接口 + 前端交互 + 业务规则
|
|
97
|
-
- 生成 docs/test-cases/REQ-XXX-testcases.md
|
|
98
|
-
|
|
99
|
-
请输入选择 (1/2/3/4/5):
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
### 4. 生成单元测试 (UT)
|
|
103
|
-
|
|
104
|
-
#### 4.1 分析被测方法
|
|
105
|
-
|
|
106
|
-
```
|
|
107
|
-
分析业务层方法...
|
|
108
|
-
|
|
109
|
-
<source-file>:
|
|
110
|
-
<方法签名 1>
|
|
111
|
-
<方法签名 2>
|
|
112
|
-
<方法签名 3>
|
|
113
|
-
<方法签名 N>
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
#### 4.2 生成测试用例
|
|
117
|
-
|
|
118
|
-
根据 CLAUDE.md 中定义的测试框架和规范,生成对应的测试代码。
|
|
119
|
-
|
|
120
|
-
测试用例遵循 **Arrange-Act-Assert** 模式:
|
|
41
|
+
交互式选择或从 `--type` 参数确定。
|
|
121
42
|
|
|
122
|
-
|
|
123
|
-
生成文件:<CLAUDE.md中定义的测试文件路径>
|
|
124
|
-
|
|
125
|
-
测试用例列表:
|
|
126
|
-
<TestCase_Method1_Success> - 正常流程
|
|
127
|
-
<TestCase_Method1_ErrorCase> - 异常场景
|
|
128
|
-
<TestCase_Method2_ValidInput> - 输入校验
|
|
129
|
-
<TestCase_Method2_InvalidInput> - 边界条件
|
|
130
|
-
<TestCase_Method3_NormalCase> - 正常流程
|
|
131
|
-
<TestCase_Method3_EdgeCase> - 边界条件
|
|
132
|
-
|
|
133
|
-
每个测试用例结构:
|
|
134
|
-
1. Arrange - 准备数据和 Mock 依赖
|
|
135
|
-
2. Act - 执行被测方法
|
|
136
|
-
3. Assert - 验证结果
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
#### 4.3 生成 Mock 文件(如需要)
|
|
140
|
-
|
|
141
|
-
```
|
|
142
|
-
按 CLAUDE.md 测试规范生成 Mock 文件...
|
|
43
|
+
---
|
|
143
44
|
|
|
144
|
-
|
|
45
|
+
### 4. 生成 UT
|
|
145
46
|
|
|
146
|
-
|
|
147
|
-
|
|
47
|
+
- **分析被测方法**:读取源文件,列出所有方法签名
|
|
48
|
+
- **生成测试用例**:按项目测试框架规范(从 CLAUDE.md 读取),遵循 Arrange-Act-Assert 模式
|
|
49
|
+
- **生成 Mock 文件**(如需要):按项目 Mock 生成命令执行
|
|
148
50
|
|
|
149
51
|
### 5. 生成 API 测试
|
|
150
52
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
```
|
|
154
|
-
提取 API 定义...
|
|
155
|
-
|
|
156
|
-
从需求文档提取:
|
|
157
|
-
<HTTP_METHOD> <endpoint-1> <描述>
|
|
158
|
-
<HTTP_METHOD> <endpoint-2> <描述>
|
|
159
|
-
<HTTP_METHOD> <endpoint-3> <描述>
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
#### 5.2 生成测试代码
|
|
163
|
-
|
|
164
|
-
根据 CLAUDE.md 中定义的 API 测试框架生成测试代码。
|
|
165
|
-
|
|
166
|
-
每个接口的测试覆盖:
|
|
167
|
-
|
|
168
|
-
```
|
|
169
|
-
生成文件:<CLAUDE.md中定义的API测试文件路径>
|
|
170
|
-
|
|
171
|
-
<endpoint-1> 测试用例:
|
|
172
|
-
正常请求 - 完整参数 → 期望成功响应
|
|
173
|
-
正常请求 - 可选参数缺省 → 期望成功响应(默认值)
|
|
174
|
-
异常请求 - 缺少必填字段 → 期望参数校验错误
|
|
175
|
-
异常请求 - 业务规则冲突 → 期望业务错误码
|
|
176
|
-
异常请求 - 无权限 → 期望权限错误
|
|
177
|
-
|
|
178
|
-
采用表驱动测试模式,每组包含:
|
|
179
|
-
- name: 场景描述
|
|
180
|
-
- input: 请求参数
|
|
181
|
-
- wantStatus: 期望状态码
|
|
182
|
-
- wantBody: 期望响应内容(可选)
|
|
183
|
-
```
|
|
53
|
+
- **提取 API 定义**:从需求文档获取接口端点
|
|
54
|
+
- **生成测试代码**:覆盖正常请求(完整/缺省参数)、异常请求(缺少必填字段、业务规则冲突、无权限)
|
|
184
55
|
|
|
185
56
|
### 6. 生成 E2E 测试
|
|
186
57
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
⚠️ E2E 测试需要启动测试环境:
|
|
191
|
-
- 依赖服务(数据库、缓存等)
|
|
192
|
-
- 后端服务(本地)
|
|
193
|
-
- 前端服务(本地)
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
#### 6.1 识别用户流程
|
|
197
|
-
|
|
198
|
-
```
|
|
199
|
-
识别用户流程...
|
|
200
|
-
|
|
201
|
-
核心流程:<功能名称>
|
|
202
|
-
1. <用户操作步骤 1>
|
|
203
|
-
2. <用户操作步骤 2>
|
|
204
|
-
3. <用户操作步骤 3>
|
|
205
|
-
4. <验证步骤>
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
#### 6.2 生成测试代码
|
|
209
|
-
|
|
210
|
-
根据 CLAUDE.md 中定义的 E2E 测试框架生成测试代码。
|
|
211
|
-
|
|
212
|
-
```
|
|
213
|
-
生成文件:<CLAUDE.md中定义的E2E测试文件路径>
|
|
214
|
-
|
|
215
|
-
测试场景:
|
|
216
|
-
<场景 1>: <用户流程描述>
|
|
217
|
-
前置:<数据准备 / 登录>
|
|
218
|
-
操作:<页面交互步骤>
|
|
219
|
-
断言:<预期结果>
|
|
220
|
-
<场景 2>: <边界条件描述>
|
|
221
|
-
前置:<特定状态准备>
|
|
222
|
-
操作:<触发边界条件>
|
|
223
|
-
断言:<预期错误提示>
|
|
224
|
-
<场景 3>: <修改流程描述>
|
|
225
|
-
前置:<已有数据>
|
|
226
|
-
操作:<修改操作>
|
|
227
|
-
断言:<修改后状态>
|
|
228
|
-
```
|
|
58
|
+
- **前提**:需要完整测试环境
|
|
59
|
+
- **识别用户流程**:从需求文档提取核心用户操作流程
|
|
60
|
+
- **生成测试代码**:覆盖正常流程、边界条件、修改流程,含前置数据准备和断言
|
|
229
61
|
|
|
230
62
|
### 7. 生成手动测试用例文档 (manual)
|
|
231
63
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
#### 7.1 分析信息源
|
|
235
|
-
|
|
236
|
-
同时读取两处:
|
|
237
|
-
|
|
238
|
-
```
|
|
239
|
-
读取需求文档...
|
|
240
|
-
功能清单(待验证的功能点)
|
|
241
|
-
业务规则(边界条件、约束)
|
|
242
|
-
使用场景(正常流程 + 异常流程)
|
|
243
|
-
测试要点(已有的验收标准)
|
|
244
|
-
|
|
245
|
-
读取源代码...
|
|
246
|
-
后端:handler/controller → 提取接口路径、参数、返回码
|
|
247
|
-
后端:service/logic → 提取分支逻辑、边界判断
|
|
248
|
-
前端:页面/组件 → 提取交互逻辑、表单校验、跳转规则
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
源码补充需求文档未覆盖的细节(如实际返回的错误码、字段校验规则)。
|
|
252
|
-
|
|
253
|
-
#### 7.2 生成用例
|
|
64
|
+
同时读取需求文档 + 源代码,按模块分组生成表格化用例:
|
|
254
65
|
|
|
255
|
-
|
|
66
|
+
- **后端接口**:每个接口覆盖正常路径、参数缺失/非法、业务规则冲突、权限不足
|
|
67
|
+
- **前端交互**:覆盖正常操作、表单校验、异常提示、边界状态
|
|
68
|
+
- **业务规则**:每条规则至少一条用例
|
|
256
69
|
|
|
257
|
-
|
|
70
|
+
输出到 `docs/test-cases/REQ-XXX-testcases.md`,包含编号、场景、前置条件、操作步骤、预期结果、实际结果、通过列。
|
|
258
71
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
**业务规则** — 需求文档中的每条业务规则对应至少一条用例。
|
|
262
|
-
|
|
263
|
-
输出格式:
|
|
264
|
-
|
|
265
|
-
````
|
|
266
|
-
生成手动测试用例...
|
|
267
|
-
|
|
268
|
-
生成文件:docs/test-cases/REQ-XXX-testcases.md
|
|
269
|
-
|
|
270
|
-
# REQ-XXX <需求标题> · 手动测试用例
|
|
271
|
-
|
|
272
|
-
> 需求:[REQ-XXX](../../requirements/active/REQ-XXX-xxx.md)
|
|
273
|
-
> 生成日期:YYYY-MM-DD
|
|
274
|
-
> 状态:待测试
|
|
72
|
+
更新需求文档第六章追加用例文件引用。
|
|
275
73
|
|
|
276
74
|
---
|
|
277
75
|
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
| 编号 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 实际结果 | 通过 |
|
|
281
|
-
|-----|------|---------|---------|---------|---------|-----|
|
|
282
|
-
| TC-001 | <接口名>-正常 | <前置数据/权限> | `<HTTP_METHOD> <path>`<br>参数:`{...}` | HTTP <状态码>,返回 `{...}` | | |
|
|
283
|
-
| TC-002 | <接口名>-缺少必填字段 | - | 省略字段 `<field>` | HTTP 400,`message` 含"<字段名>不能为空" | | |
|
|
284
|
-
| TC-003 | <接口名>-无权限 | 未登录 / 低权限账号 | 发起请求 | HTTP 401 / 403 | | |
|
|
285
|
-
| TC-004 | <接口名>-业务规则冲突 | <冲突前置条件> | <触发冲突的参数> | HTTP 4XX,业务错误码 `<code>` | | |
|
|
286
|
-
|
|
287
|
-
---
|
|
288
|
-
|
|
289
|
-
## 前端交互
|
|
290
|
-
|
|
291
|
-
| 编号 | 页面/功能 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 实际结果 | 通过 |
|
|
292
|
-
|-----|---------|------|---------|---------|---------|---------|-----|
|
|
293
|
-
| TC-101 | <页面名> | 正常流程 | <登录状态/数据> | 1. <操作1><br>2. <操作2><br>3. <操作3> | <可观测的页面状态> | | |
|
|
294
|
-
| TC-102 | <页面名> | 表单校验-<字段> | - | 1. 不填 `<字段>`<br>2. 点击提交 | 字段下方显示"<校验提示>" | | |
|
|
295
|
-
| TC-103 | <页面名> | 空数据状态 | 无相关数据 | 进入页面 | 显示空状态占位 | | |
|
|
296
|
-
| TC-104 | <页面名> | 操作成功反馈 | <正常前置> | <完成操作> | 显示成功提示,数据刷新 | | |
|
|
297
|
-
|
|
298
|
-
---
|
|
299
|
-
|
|
300
|
-
## 业务规则验证
|
|
301
|
-
|
|
302
|
-
| 编号 | 规则 | 场景 | 操作 | 预期结果 | 实际结果 | 通过 |
|
|
303
|
-
|-----|------|------|------|---------|---------|-----|
|
|
304
|
-
| TC-201 | <业务规则描述> | <触发场景> | <操作步骤> | <预期约束生效表现> | | |
|
|
305
|
-
|
|
306
|
-
---
|
|
307
|
-
|
|
308
|
-
## 测试执行记录
|
|
309
|
-
|
|
310
|
-
- **执行人**:
|
|
311
|
-
- **执行日期**:
|
|
312
|
-
- **测试环境**:
|
|
313
|
-
- **总计**:N 条,通过 0 条,失败 0 条,跳过 0 条
|
|
314
|
-
````
|
|
315
|
-
|
|
316
|
-
#### 7.3 更新需求文档
|
|
317
|
-
|
|
318
|
-
在需求文档「六、测试要点」末尾追加引用行:
|
|
76
|
+
### 8. 汇总 & 运行验证
|
|
319
77
|
|
|
320
|
-
|
|
321
|
-
手动测试用例:[docs/test-cases/REQ-XXX-testcases.md](../../../test-cases/REQ-XXX-testcases.md)(生成于 YYYY-MM-DD)
|
|
322
|
-
```
|
|
78
|
+
生成文件汇总表(类型、文件、用例数)。运行新创建的测试验证通过率。
|
|
323
79
|
|
|
324
80
|
---
|
|
325
81
|
|
|
326
|
-
###
|
|
327
|
-
|
|
328
|
-
```
|
|
329
|
-
测试文件生成完成
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
类型 文件 用例数
|
|
333
|
-
|
|
334
|
-
UT <ut-test-file> N
|
|
335
|
-
API <api-test-file> N
|
|
336
|
-
E2E <e2e-test-file> N
|
|
337
|
-
手动用例 docs/test-cases/REQ-XXX-testcases.md N
|
|
338
|
-
|
|
339
|
-
合计 N 个文件 N
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
✅ 已生成 Mock 文件(如需要)
|
|
343
|
-
✅ 已添加测试数据 fixtures(如需要)
|
|
344
|
-
```
|
|
345
|
-
|
|
346
|
-
### 9. 运行验证
|
|
347
|
-
|
|
348
|
-
```
|
|
349
|
-
运行新创建的测试...
|
|
350
|
-
|
|
351
|
-
<CLAUDE.md中定义的UT运行命令> <ut-test-file>
|
|
352
|
-
<TestCase_1> --- PASS
|
|
353
|
-
<TestCase_2> --- PASS
|
|
354
|
-
...
|
|
355
|
-
|
|
356
|
-
<CLAUDE.md中定义的API测试运行命令> <api-test-file>
|
|
357
|
-
<TestCase_API_1> --- PASS
|
|
358
|
-
<TestCase_API_2> --- PASS
|
|
359
|
-
...
|
|
82
|
+
### 9. 更新需求文档
|
|
360
83
|
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
下一步:
|
|
364
|
-
- 运行全量回归:/req:test_regression
|
|
365
|
-
- 继续开发:/req:dev
|
|
366
|
-
- 完成需求:/req:done
|
|
367
|
-
```
|
|
368
|
-
|
|
369
|
-
### 10. 更新需求文档
|
|
370
|
-
|
|
371
|
-
自动更新需求文档的测试覆盖章节:
|
|
372
|
-
|
|
373
|
-
```markdown
|
|
374
|
-
## 测试覆盖
|
|
375
|
-
|
|
376
|
-
| 类型 | 文件 | 用例数 | 覆盖率 |
|
|
377
|
-
|-----|------|-------|-------|
|
|
378
|
-
| UT | <ut-test-file> | N | XX% |
|
|
379
|
-
| API | <api-test-file> | N | XX% |
|
|
380
|
-
| E2E | <e2e-test-file> | N | - |
|
|
381
|
-
|
|
382
|
-
创建时间:<date>
|
|
383
|
-
最后运行:<date> ✅ 全部通过
|
|
384
|
-
```
|
|
84
|
+
在需求文档追加测试覆盖章节(类型、文件、用例数、覆盖率、创建时间)。
|
|
385
85
|
|
|
386
86
|
---
|
|
387
87
|
|
|
388
|
-
##
|
|
389
|
-
|
|
390
|
-
测试模板从项目 CLAUDE.md 的「测试规范」章节读取,包括:
|
|
391
|
-
|
|
392
|
-
### UT 模板
|
|
393
|
-
|
|
394
|
-
- 测试框架、断言库、Mock 工具由 CLAUDE.md 定义
|
|
395
|
-
- 遵循 Arrange-Act-Assert 模式
|
|
396
|
-
- 命名规范:`Test{被测对象}_{方法}_{场景}`
|
|
397
|
-
|
|
398
|
-
### API 测试模板
|
|
399
|
-
|
|
400
|
-
- 测试框架由 CLAUDE.md 定义
|
|
401
|
-
- 采用表驱动测试模式
|
|
402
|
-
- 覆盖正常路径、异常路径、权限校验
|
|
403
|
-
- 命名规范:`Test{Endpoint}_{场景}`
|
|
404
|
-
|
|
405
|
-
### E2E 测试模板
|
|
88
|
+
## 测试规范来源
|
|
406
89
|
|
|
407
|
-
|
|
408
|
-
- 包含前置数据准备(如登录、数据重置)
|
|
409
|
-
- 模拟真实用户操作流程
|
|
410
|
-
- 验证页面状态和交互结果
|
|
90
|
+
测试框架、断言库、Mock 工具、命名规范、文件路径等均从项目 CLAUDE.md「测试规范」读取,不内置任何项目细节。
|
|
411
91
|
|
|
412
92
|
---
|
|
413
93
|
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# 前端项目架构(CLAUDE.md 建议片段)
|
|
2
|
+
|
|
3
|
+
> 请将以下内容追加到项目的 CLAUDE.md 中,并根据实际情况调整。
|
|
4
|
+
|
|
5
|
+
## 项目架构
|
|
6
|
+
|
|
7
|
+
### 技术栈
|
|
8
|
+
|
|
9
|
+
- 框架:React 18+ / Next.js 16(根据实际选择)
|
|
10
|
+
- 语言:TypeScript
|
|
11
|
+
- 状态管理:Zustand / Redux Toolkit
|
|
12
|
+
- UI 组件:Ant Design / shadcn/ui
|
|
13
|
+
- 样式:Tailwind CSS / CSS Modules
|
|
14
|
+
- 构建:Vite / Turbopack
|
|
15
|
+
- 测试:Vitest + React Testing Library + Playwright
|
|
16
|
+
|
|
17
|
+
### 目录结构
|
|
18
|
+
|
|
19
|
+
| 目录 | 职责 | 说明 |
|
|
20
|
+
|------|------|------|
|
|
21
|
+
| `src/components/` | UI 组件 | 通用组件、业务组件 |
|
|
22
|
+
| `src/pages/` 或 `app/` | 页面/路由 | 文件系统路由或手动路由 |
|
|
23
|
+
| `src/hooks/` | 自定义 Hooks | 复用逻辑抽取 |
|
|
24
|
+
| `src/services/` 或 `src/api/` | API 调用 | 接口封装、类型定义 |
|
|
25
|
+
| `src/stores/` | 状态管理 | 全局状态 |
|
|
26
|
+
| `src/types/` | 类型定义 | 共享 TypeScript 类型 |
|
|
27
|
+
| `src/utils/` | 工具函数 | 通用工具 |
|
|
28
|
+
|
|
29
|
+
### 文件命名
|
|
30
|
+
|
|
31
|
+
- 组件文件:PascalCase(如 `UserProfile.tsx`)
|
|
32
|
+
- 工具/hooks:camelCase(如 `useAuth.ts`)
|
|
33
|
+
- 样式文件:与组件同名(如 `UserProfile.module.css`)
|
|
34
|
+
|
|
35
|
+
### 开发规范
|
|
36
|
+
|
|
37
|
+
- 组件:函数组件 + Hooks,避免 class 组件
|
|
38
|
+
- 类型:所有 props 和 API 响应定义 TypeScript 接口
|
|
39
|
+
- API 调用:统一封装 fetch/axios,集中管理接口地址
|
|
40
|
+
- 错误处理:ErrorBoundary + Toast 提示
|
|
41
|
+
- 国际化:i18next(如需)
|
|
42
|
+
|
|
43
|
+
### 测试规范
|
|
44
|
+
|
|
45
|
+
- 组件测试:`*.test.tsx`,React Testing Library
|
|
46
|
+
- 工具函数测试:`*.test.ts`,Vitest
|
|
47
|
+
- E2E 测试:`tests/e2e/`,Playwright
|
|
48
|
+
- 运行命令:`npm test` / `npx vitest` / `npx playwright test`
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# 项目架构(CLAUDE.md 建议片段)
|
|
2
|
+
|
|
3
|
+
> 请将以下内容追加到项目的 CLAUDE.md 中,并根据实际情况填写。
|
|
4
|
+
> 此信息供 AI 辅助开发时理解项目结构,是需求开发引导和测试引导的基础。
|
|
5
|
+
|
|
6
|
+
## 项目架构
|
|
7
|
+
|
|
8
|
+
### 技术栈
|
|
9
|
+
|
|
10
|
+
- 语言:<!-- 如 Go / Java / TypeScript / Python -->
|
|
11
|
+
- 框架:<!-- 如 Gin / Spring Boot / Next.js / FastAPI -->
|
|
12
|
+
- ORM/数据库:<!-- 如 GORM+MySQL / JPA+PostgreSQL / Prisma+PostgreSQL -->
|
|
13
|
+
- 测试框架:<!-- 如 go test / JUnit / Vitest / pytest -->
|
|
14
|
+
|
|
15
|
+
### 分层架构
|
|
16
|
+
|
|
17
|
+
<!-- 按开发顺序列出项目的分层,AI 会按此顺序引导开发 -->
|
|
18
|
+
|
|
19
|
+
| 层 | 职责 | 目录 | 说明 |
|
|
20
|
+
|----|------|------|------|
|
|
21
|
+
| <!-- 数据层 --> | <!-- 数据模型定义 --> | <!-- 目录路径 --> | <!-- 补充说明 --> |
|
|
22
|
+
| <!-- 数据访问层 --> | <!-- CRUD 操作 --> | <!-- 目录路径 --> | |
|
|
23
|
+
| <!-- 业务层 --> | <!-- 业务逻辑 --> | <!-- 目录路径 --> | |
|
|
24
|
+
| <!-- 接口层 --> | <!-- 请求处理 --> | <!-- 目录路径 --> | |
|
|
25
|
+
| <!-- 路由层 --> | <!-- 路由注册 --> | <!-- 目录路径 --> | |
|
|
26
|
+
|
|
27
|
+
### 文件命名
|
|
28
|
+
|
|
29
|
+
- <!-- 如:Go 文件 kebab-case,Java 文件 PascalCase,组件 PascalCase.tsx -->
|
|
30
|
+
|
|
31
|
+
### 开发规范
|
|
32
|
+
|
|
33
|
+
- 错误处理:<!-- 如何处理错误 -->
|
|
34
|
+
- 日志:<!-- 日志格式和方法 -->
|
|
35
|
+
- API 风格:<!-- RESTful / GraphQL -->
|
|
36
|
+
- <!-- 其他项目特有规范 -->
|
|
37
|
+
|
|
38
|
+
### 测试规范
|
|
39
|
+
|
|
40
|
+
- UT 位置:<!-- 测试文件目录和命名规则 -->
|
|
41
|
+
- 集成/API 测试:<!-- 位置和工具 -->
|
|
42
|
+
- E2E 测试:<!-- 位置和工具 -->
|
|
43
|
+
- 运行命令:<!-- 如 go test ./... / npm test -->
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Go 后端项目架构(CLAUDE.md 建议片段)
|
|
2
|
+
|
|
3
|
+
> 请将以下内容追加到项目的 CLAUDE.md 中,并根据实际情况调整。
|
|
4
|
+
|
|
5
|
+
## 项目架构
|
|
6
|
+
|
|
7
|
+
### 技术栈
|
|
8
|
+
|
|
9
|
+
- 语言:Go 1.22+
|
|
10
|
+
- Web 框架:Gin
|
|
11
|
+
- ORM:GORM
|
|
12
|
+
- 数据库:MySQL 8.0, Redis 7
|
|
13
|
+
- API 风格:RESTful + Swagger 注解
|
|
14
|
+
- 测试:go test + gomock
|
|
15
|
+
|
|
16
|
+
### 分层架构
|
|
17
|
+
|
|
18
|
+
按以下顺序开发,每层职责明确:
|
|
19
|
+
|
|
20
|
+
| 层 | 职责 | 目录 | 说明 |
|
|
21
|
+
|----|------|------|------|
|
|
22
|
+
| Model | 数据模型定义 | `internal/model/` | 结构体、表名、字段标签 |
|
|
23
|
+
| Store | 数据访问 | `internal/store/` | CRUD 操作,SQL 查询 |
|
|
24
|
+
| Biz | 业务逻辑 | `internal/biz/` | 校验、组合、事务 |
|
|
25
|
+
| Controller | 接口处理 | `internal/controller/v1/` | 参数绑定、响应封装 |
|
|
26
|
+
| Router | 路由注册 | `internal/router/` | 路由分组、中间件 |
|
|
27
|
+
|
|
28
|
+
### 文件命名
|
|
29
|
+
|
|
30
|
+
- Go 文件:kebab-case(如 `sys-dept-channel.go`)
|
|
31
|
+
- 测试文件:与源文件同目录 `*_test.go`
|
|
32
|
+
|
|
33
|
+
### 开发规范
|
|
34
|
+
|
|
35
|
+
- 错误处理:`errno.ErrXxx` 错误码,非裸 error
|
|
36
|
+
- 日志:`log.Info/Error(msg, ctx, k, v...)` 结构化日志,非 `fmt.Println`
|
|
37
|
+
- 多租户:所有业务表包含 `TenantID` 字段
|
|
38
|
+
- 权限标识:`module:resource:action` 格式
|
|
39
|
+
- Controller:Swagger 注解(Summary、Param、Success、Failure),`ShouldBindJSON`/`ShouldBindQuery` 参数绑定,`response.Success(c, data)`/`response.Error(c, err)` 响应
|
|
40
|
+
|
|
41
|
+
### 测试规范
|
|
42
|
+
|
|
43
|
+
- UT:与源文件同目录 `*_test.go`,gomock 模拟依赖
|
|
44
|
+
- API 测试:`tests/api/` 目录
|
|
45
|
+
- E2E 测试:`tests/e2e/`(如有前端)
|
|
46
|
+
- 测试环境:`docker-compose.test.yml`(MySQL + Redis 容器)
|
|
47
|
+
- 运行命令:`go test ./...`
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Java 后端项目架构(CLAUDE.md 建议片段)
|
|
2
|
+
|
|
3
|
+
> 请将以下内容追加到项目的 CLAUDE.md 中,并根据实际情况调整。
|
|
4
|
+
|
|
5
|
+
## 项目架构
|
|
6
|
+
|
|
7
|
+
### 技术栈
|
|
8
|
+
|
|
9
|
+
- 语言:Java 17+
|
|
10
|
+
- 框架:Spring Boot 3.x
|
|
11
|
+
- ORM:MyBatis-Plus / JPA
|
|
12
|
+
- 数据库:MySQL 8.0, Redis 7
|
|
13
|
+
- API 风格:RESTful
|
|
14
|
+
- 构建:Maven / Gradle
|
|
15
|
+
- 测试:JUnit 5 + Mockito
|
|
16
|
+
|
|
17
|
+
### 分层架构
|
|
18
|
+
|
|
19
|
+
按以下顺序开发,每层职责明确:
|
|
20
|
+
|
|
21
|
+
| 层 | 职责 | 目录 | 说明 |
|
|
22
|
+
|----|------|------|------|
|
|
23
|
+
| Entity | 数据模型 | `src/main/java/.../entity/` | 实体类、表映射 |
|
|
24
|
+
| Mapper/Repository | 数据访问 | `src/main/java/.../mapper/` | SQL 映射、CRUD |
|
|
25
|
+
| Service | 业务逻辑 | `src/main/java/.../service/` | 接口 + Impl 实现 |
|
|
26
|
+
| Controller | 接口处理 | `src/main/java/.../controller/` | 参数校验、响应封装 |
|
|
27
|
+
|
|
28
|
+
### 文件命名
|
|
29
|
+
|
|
30
|
+
- Java 文件:PascalCase(如 `SysDeptChannel.java`)
|
|
31
|
+
- 包名:小写(如 `com.example.system`)
|
|
32
|
+
|
|
33
|
+
### 开发规范
|
|
34
|
+
|
|
35
|
+
- 异常处理:自定义 BusinessException + 全局异常处理器
|
|
36
|
+
- 日志:`@Slf4j` + `log.info/error` 结构化日志
|
|
37
|
+
- 参数校验:`@Valid` + `@NotNull`/`@Size` 注解
|
|
38
|
+
- API 文档:SpringDoc / Swagger 注解
|
|
39
|
+
- 事务:`@Transactional` 注解
|
|
40
|
+
|
|
41
|
+
### 测试规范
|
|
42
|
+
|
|
43
|
+
- UT:`src/test/java/` 对应目录,Mockito 模拟依赖
|
|
44
|
+
- 集成测试:`@SpringBootTest` + `@TestContainers`
|
|
45
|
+
- API 测试:`MockMvc` 或 `RestAssured`
|
|
46
|
+
- 运行命令:`mvn test` / `gradle test`
|