auto-sync: 2026-06-07 20:21:43
This commit is contained in:
@@ -107,6 +107,7 @@
|
||||
| `src/api/mail_routes.py` | integration/test_api_mail | `pytest -m mail` |
|
||||
| `src/api/blackboard_routes.py` | integration/test_api_tasks + reviews | `pytest tests/integration/ -k task` |
|
||||
| `src/daemon/review.py` | unit/test_rebuttal + integration | `pytest -m review` |
|
||||
| `src/api/toolchain_routes.py` | unit/test_toolchain + integration | `pytest tests/unit/test_toolchain.py tests/integration/ -k toolchain` |
|
||||
|
||||
**快速验证**:`pytest -m "not e2e"`(~2-5 分钟,不含 E2E)
|
||||
|
||||
@@ -324,7 +325,34 @@ E2E 测试能安全运行的前提:
|
||||
- S21.1 HTML 不缓存
|
||||
- S21.2 JS/CSS immutable 缓存(原 2 个测试合并)
|
||||
|
||||
**场景测试合计:58 个测试**
|
||||
#### S22: 工具链事件中枢(12 个测试)| 对应 design: #13 工具链与开发流程 §16
|
||||
|
||||
- S22.1 PR opened → 司马懿收到 Review 请求 Mail
|
||||
- 验证:Webhook 返回 200,Mail 创建成功,收件人 simayi-challenger,模板填充正确(PR号、标题、作者、分支)
|
||||
- S22.2 Review APPROVED → PR 作者收到通过通知
|
||||
- 验证:Mail 收件人正确(PR 作者),模板填充 review result
|
||||
- S22.3 Review REQUEST_CHANGES → PR 作者收到不通过通知
|
||||
- 验证:Mail 包含 review body,收件人正确
|
||||
- S22.4 Review COMMENTED → 不创建 Mail(忽略普通评论)
|
||||
- 验证:返回 200 但无 Mail 创建
|
||||
- S22.5 Issue assigned → 被指派人收到任务通知
|
||||
- 验证:Mail 收件人正确(被指派人),模板含 Issue 标题/编号信息
|
||||
- S22.6 CI 失败评论(`[CI]` 前缀)→ PR 作者收到 CI 失败通知
|
||||
- 验证:匹配 [CI] 前缀,Mail 含错误摘要,收件人为 PR 作者
|
||||
- S22.7 非 CI 评论 → 忽略不处理
|
||||
- 验证:不匹配 [CI] 前缀的评论不创建 Mail,返回 200
|
||||
- S22.8 部署失败 Issue(标题含"部署失败")→ 庞统+姜维收到通知
|
||||
- 验证:两个收件人都收到 Mail(pangtong-fujunshi、jiangwei-infra),模板含 Issue 信息
|
||||
- S22.9 幂等检查:同一 delivery_id 重复投递 → 忽略
|
||||
- 验证:第二次返回 duplicate/ignored,不重复创建 Mail
|
||||
- S22.10 签名验证:错误签名 → 403
|
||||
- 验证:配置 secret 后,signature 不匹配返回 403;secret 为空时跳过验签
|
||||
- S22.11 未知事件类型 → 忽略返回 200
|
||||
- 验证:未知 event 不报错,返回 200,不创建 Mail
|
||||
- S22.12 风险级别自动判定:改动含高风险文件 → high
|
||||
- 验证:changed_files 包含 spawner/dispatcher/router 等高风险路径时 risk_level=high;普通文件为 normal
|
||||
|
||||
**场景测试合计:70 个测试**
|
||||
|
||||
### 4.2 压力测试(ST1-ST3)
|
||||
|
||||
@@ -383,6 +411,7 @@ tests/
|
||||
│ ├── test_cli.py # CLI 命令
|
||||
│ ├── test_skill_system.py # Skill 匹配/推荐
|
||||
│ └── test_guardrails.py # Guardrail 规则(待创建,当前逻辑在 test_router.py + test_review_integration.py)
|
||||
│ ├── test_toolchain.py # 工具链事件中枢:模板引擎 + 幂等检查 + 风险判定(#13 §16)
|
||||
├── integration/ # 集成测试(不 spawn 真实 Agent)
|
||||
│ ├── test_api.py # 项目管理 + Daemon API
|
||||
│ ├── test_api_mail.py # 邮件 API(A1-A10 防御 + 功能)
|
||||
@@ -391,11 +420,12 @@ tests/
|
||||
│ ├── test_review_integration.py # Review pipeline + scoring
|
||||
│ ├── test_ticker_integration.py # Ticker 主循环 + 广播 + 超时 + 依赖推进
|
||||
│ ├── test_sse.py # SSE broker + hook manager
|
||||
│ ├── test_toolchain_integration.py # 工具链 Webhook API 端点 + Mail 创建
|
||||
│ └── test_v27_subtasks.py # 子任务集成
|
||||
└── e2e/ # E2E 测试(spawn 真实 Agent)
|
||||
├── conftest.py # E2E fixture:清理 API + atexit 兜底 + manifest
|
||||
├── test_four_phase.py # #01 四相循环
|
||||
├── test_e2e_scenarios.py # S1-S21 场景测试(串行)
|
||||
├── test_e2e_scenarios.py # S1-S22 场景测试(串行)
|
||||
├── test_e2e_stress.py # ST1-ST3 压力测试(并行)
|
||||
└── test_spawner_e2e.py # Spawner 进程管理(timeout kill + spawn failure)
|
||||
```
|
||||
@@ -460,6 +490,7 @@ def pytest_configure(config):
|
||||
| **#04 黑板协作** | @mention、comment、产出、review | P1 | P0 | P1 |
|
||||
| **#10 T3 需求探索** | 苏格拉底式对话、需求规格化 | P1(暂无测试文件) | — | — |
|
||||
| **#12 Pipeline** | task_type 路由、状态机约束 | P2 | P2 | — |
|
||||
| **#13 工具链与开发流程 §16** | Webhook 接收、事件路由、模板填充、Mail 创建、幂等检查、签名验证 | P0 | P0 | P1(S22) |
|
||||
|
||||
### 6.2 模块 → 测试层级 → 优先级
|
||||
|
||||
@@ -484,6 +515,7 @@ def pytest_configure(config):
|
||||
| SSE 推送 | P1 | P0 | — | architecture-v3.0 §15 |
|
||||
| Bootstrap 上下文 | P1 | P1 | — | architecture-v3.0 §10 |
|
||||
| PM2 恢复 | P1 | — | P0 | #06 |
|
||||
| 工具链事件中枢 | P0 | P0 | P1 | #13 §16 |
|
||||
|
||||
---
|
||||
|
||||
@@ -549,7 +581,7 @@ atexit.register(_emergency_cleanup)
|
||||
|
||||
| 类别 | 标准 |
|
||||
|------|------|
|
||||
| **场景测试(S1-S21)** | 58 个全部通过。失败必须分析根因并修复后才继续 |
|
||||
| **场景测试(S1-S22)** | 70 个全部通过。失败必须分析根因并修复后才继续 |
|
||||
| **压力测试(ST1-ST3)** | 3 个全部通过。验证并发控制无死锁 |
|
||||
| **P0 必须全部通过** | S1-S8 + S10 + S11-S14 |
|
||||
| **P1 通过率 ≥ 80%** | S9 + S15-S21 + ST1-ST3(依赖真实 Agent,可能受网络/环境干扰) |
|
||||
@@ -646,6 +678,7 @@ atexit.register(_emergency_cleanup)
|
||||
| 2026-06-01 | v2.8 | 新增 E11-E15(庞统) |
|
||||
| 2026-06-05 | v3.0 | 全面重写:三层分离 + 主公四原则 + 背靠背 review 修正 + E14 编号冲突修复 + 场景/压力分离 + 串行执行策略(庞统综合,基于仲达 v30 草案) |
|
||||
| 2026-06-05 | v3.0.1 | 仲达 review 修订:修正幽灵文件 4 处 + 补 E15a/b 迁移映射 + 清理 API 状态改已实现 + S9.3 设计文档标注 + ST 验收标准细化 + #10 暂无文件标注 + S21 合并说明 |
|
||||
| 2026-06-07 | v3.0.2 | 新增 S22 工具链事件中枢 E2E 测试设计(12 个测试),覆盖 #13 §16 事件处理矩阵 |
|
||||
|
||||
### v3.0 vs v2.8 关键变化
|
||||
|
||||
|
||||
Reference in New Issue
Block a user