docs: 补充闭环测试金字塔和质量门禁(本项目适配版)
This commit is contained in:
51
AGENTS.md
51
AGENTS.md
@@ -527,3 +527,54 @@ AI Agent(我)在约束内执行编码
|
||||
- **渐进增强**:先跑通编译 → 再加数据流验证 → 再沉淀规则
|
||||
- **可观测性优先**:每次修改必须 git diff 可见
|
||||
- **安全内建**:铁律(不可删文件、不可改架构)是底线
|
||||
|
||||
## 闭环测试系统(本项目的测试金字塔)
|
||||
|
||||
我们没有企业级的 CI 流水线,但同样有分层测试策略:
|
||||
|
||||
```
|
||||
你审查(深度验证)
|
||||
↑ 功能正确性、变更范围
|
||||
数据流验证(功能测试)
|
||||
↑ 字段链路完整性、多入口覆盖
|
||||
编译检查(静态测试)
|
||||
↑ 语法错误、符号解析、类型安全
|
||||
```
|
||||
|
||||
| 层级 | 耗时 | 覆盖范围 | 失败处理 |
|
||||
|---|---|---|---|
|
||||
| **编译检查** | 30秒 | 全量代码(语法、符号、类型) | 定位到文件+行号,分析根因 |
|
||||
| **数据流验证** | 1-2分 | 修改涉及的数据链路(输入→保存→查询→展示) | 补全缺失字段,检查多入口 |
|
||||
| **你审查** | 3-5分 | 变更范围、架构合理性、功能正确性 | 修复问题 + 同步更新 AGENTS.md |
|
||||
|
||||
### 质量门禁
|
||||
|
||||
| 门禁级别 | 条件 | 结果 |
|
||||
|---|---|---|
|
||||
| L1:编译门禁 | `mvn compile -pl openhis-application -am` 通过 | ✅ 进入数据流验证 |
|
||||
| | 编译失败 | ❌ Agent 分析根因并修复 |
|
||||
| L2:数据流门禁 | 全部数据环节贯通 | ✅ 提交你审查 |
|
||||
| | 有断链 | ❌ Agent 补全链路 |
|
||||
| L3:审查门禁 | 你确认变更正确 | ✅ 提交代码 |
|
||||
| | 发现问题 | ❌ 修复 + 更新 AGENTS.md |
|
||||
|
||||
### 结构化反馈规范
|
||||
|
||||
编译失败时,反馈必须包含:
|
||||
```
|
||||
文件: openhis-application/src/.../XxxServiceImpl.java:42
|
||||
错误: 找不到符号 getPendingRecords(int,int)
|
||||
原因: MedicalRecordService 接口缺少该方法定义
|
||||
修复方向: 在 MedicalRecordMapper 中添加对应方法
|
||||
```
|
||||
|
||||
数据流验证时,反馈必须包含:
|
||||
```
|
||||
断链环节: 住院 Mapper 子查询 1(药品)
|
||||
问题: NULL AS remark 未从 wor_service_request 关联取值
|
||||
修复:
|
||||
(SELECT remark FROM wor_service_request
|
||||
WHERE based_on_id = T1.id
|
||||
AND based_on_table = #{MED_MEDICATION_REQUEST}
|
||||
AND delete_flag = '0' LIMIT 1) AS remark
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user