|
|
@@ -28,11 +28,34 @@
|
|
|
|---|---|---|---|---|
|
|
|
| R1 | 后端 Controller 测试覆盖缺口巨大 | 357 个 Controller / 1933 个 handler 仅覆盖 199(**10.3%**);`admin` 模块 120 个中 103 个完全无测试(见 `discovery.md`) | 核心管理接口无回归保护,测试覆盖目标无法达成 | 按 `runbook.md` §2 缺口 backlog 补 `admin`(P0)→`guide`/`family`(P1)→`mind`/`assessment`(P2) 的单测与接口测试 |
|
|
|
| R2 | API 契约疑似不一致 | 此前发现 `/api/articles/report-reading-time` 返回 `biz=500` 但 `message="success"`(字段语义矛盾) | 自动化断言无法稳定判定成功/失败,易误报 | 研发在 `cfc.iwintrue.com` 复测确认,明确 `biz` 与 `message` 语义并修复或文档化契约 |
|
|
|
-| R3 | 测试环境无可用测试管理员账号 | `tests/e2e/admin-activity-review.spec.js` 等依赖 `/api/admin-auth/login-by-password` 登录取 `Bearer` token;当前无测试账号/密码 | E2E 在登录步即失败,**无法推进带登录态的端到端测试** | 研发/运维在 `cfc.iwintrue.com` 预置专用测试管理员账号并交付凭证(账号/密码/角色) |
|
|
|
+| R3 | 测试环境无可用测试管理员账号 | `tests/e2e/admin-activity-review.spec.js` 等依赖 `/api/admin-auth/login-by-password` 登录取 `Bearer` token;仓库内已硬编码测试账号 `13800138000` | E2E 在登录步即失败,**无法推进带登录态的端到端测试** | **已解决(2026-11-01):已确认测试账号 `13800138000`,实跑 E2E 登录+鉴权+API 全部可达** |
|
|
|
| R4 | 无 CI 流水线 / 无测试门禁 | 仓库无 `.github/workflows` 等 CI 配置;测试未纳入合并门禁 | 回归无自动拦截,已写测试随改动腐化 | 建 CI:`mvn test` + `pytest` + `playwright`(接 `cfc.iwintrue.com`)作为合并门禁 |
|
|
|
|
|
|
-## 3. 下一步
|
|
|
+## 3. 新增测试侧阻碍(执行中暴露,直接处理)
|
|
|
|
|
|
-- **测试侧**:T1 安装完成后,可对 `cfc.iwintrue.com` 跑无登录态 smoke;带登录态 admin E2E 待 R3 凭证到位后执行。
|
|
|
-- **研发侧**:请研发认领 R1–R4(见上表),其中 R3 是解锁端到端测试的关键前置。
|
|
|
+| 编号 | 阻碍 | 证据 | 处理 |
|
|
|
+|---|---|---|---|
|
|
|
+| T4 | 主配置 `globalSetup`(`e2e/helpers/db.js`)**强制**连内网 MySQL `192.168.16.251` 做 DB 重置+灌种子,无跳过开关,失败即 `process.exit(1)` | 远程只读 E2E 不需要重置内网库;本沙箱路由不到该内网地址 → `Access denied` 阻断一切 E2E | 已用**临时无重置配置**(`playwright.config.noreset.js`,不提交)绕过;**建议研发给 `db.js` 加 `SKIP_DB_RESET` 开关**,使针对远程测试环境的只读 E2E 可跳过本地库重置 |
|
|
|
+
|
|
|
+## 4. 已执行 E2E 结果(只读子集,2026-11-01)
|
|
|
+
|
|
|
+- 环境/凭证:针对 `http://cfc.iwintrue.com`,测试账号 `13800138000`,临时无重置配置,仅跑只读用例(登录 + 列表/查询)。
|
|
|
+- 结果:**5 通过 / 2 失败**(7 个只读用例,耗时 27.4s)。
|
|
|
+
|
|
|
+| 用例 | 文件 | 结果 |
|
|
|
+|---|---|---|
|
|
|
+| login and list draft | admin-activity-review | ✅ 通过(登录+活动列表正常) |
|
|
|
+| service records exist | admin-butler-review | ✅ 通过 |
|
|
|
+| settlements endpoint reachable | admin-butler-review | ✅ 通过 |
|
|
|
+| get config | admin-commission-config | ✅ 通过 |
|
|
|
+| records | admin-commission-config | ✅ 通过 |
|
|
|
+| list pending | admin-butler-review | ❌ 失败 |
|
|
|
+| list approved for assignment | admin-butler-review | ❌ 失败 |
|
|
|
+
|
|
|
+**失败根因(F1,契约不一致的确切实例,归属 R2)**:两个管家列表用例断言 `j.data.records`,但接口实际返回 `{"list":[],"page":1,"size":10,"total":0}`——即 **butler 列表返回 `data.list`,而 activity 列表返回 `data.records`**,后端列表接口 envelopes 不统一。需研发确认 butler 列表应返回 `records` 还是测试应改为 `list`。
|
|
|
+
|
|
|
+## 5. 下一步
|
|
|
+
|
|
|
+- **测试侧**:R3 已解决,T1/T2/T3 已执行;T4 已临时绕过(建议研发加跳过开关)。可对 `cfc.iwintrue.com` 跑更多只读/读写入 E2E(写操作如 review/assign/update 待你确认后再跑,以免在测试环境产生副作用)。
|
|
|
+- **研发侧**:请研发认领 R1–R2、R4,并确认 **F1(butler 列表 envelope 不一致)** 的正确形态。
|
|
|
- **本机执行项**(Java 单测 / Python pytest):按 `runbook.md` §3.1–§3.3 在开发机执行,结果回填 `.tdd/test-progress.json` 后刷新共享台账。
|