test: 补 Q2 已有功能集成验收与 F01-F23 对照表
This commit is contained in:
@@ -747,3 +747,26 @@
|
||||
- 原因:空命名卷属主为 root 时,distroless nonroot 无法建库(`unable to open database file`)。
|
||||
- 备选方案:compose 增加一次性 init 服务;或文档要求宿主机目录预授权。
|
||||
- 影响:按示例首次 `up` 前需处理权限,否则 serve 立即退出。
|
||||
|
||||
### Q2 第一部分(已合并功能验收)2026-09-30
|
||||
|
||||
1. **对真实进程探测,未接线则记「未测」而非改业务代码**
|
||||
- 原条款:TASKS Q2「PRD 第 10 节每条至少有一个集成测试」;本波只做已合并功能的第一部分。
|
||||
- 实际做法:`test/accept` 用 `test/harness`(随机端口 + 临时目录)起真实 `nixmsg`;对 `/api/admin/login`、`/api/client/register`、`POST /api/admin/endpoints` 先探测。404 则该条写「未测」并注明缺总控接线 / A2 / I 等,不修改 `cmd/nixmsg` 或业务包求绿。
|
||||
- 原因:main@d357082 上 A1/I1 等仅为可挂载 Handler,`serve` 只挂了 `/healthz`、`/readyz`(见各线 DEVIATIONS「未改 cmd」)。
|
||||
- 备选方案:测试进程内自行 `admin.New` 挂路由(不反映交付二进制行为,否决)。
|
||||
- 影响:本波 F17/F01/F23 多为未测;接线后同一测试会自动跑登录锁定、CSRF、注册与开通路径。
|
||||
|
||||
2. **F22 只验收 init + 健康检查子集**
|
||||
- 原条款:F22 含备份恢复、升级迁移、证书重载、Docker、指标。
|
||||
- 实际做法:集成测试覆盖空目录 `admin init`、`serve`、`/healthz`、`/readyz`,并断言管理员密码不出现在 serve 的 stdout/stderr;其余 F22 子项仍标未测。
|
||||
- 原因:本波范围是「现在就能测的路径」。
|
||||
- 备选方案:本波强行跑 Docker/证书(超出第一部分)。
|
||||
- 影响:对照表 F22 为「通过」但备注写明未覆盖项。
|
||||
|
||||
3. **验收报告写入方式**
|
||||
- 原条款:用 `test/report` 生成 F01–F23 对照表。
|
||||
- 实际做法:`TestQ2AcceptAndReport` 汇总探测结果;默认写临时目录。`task q:accept`(`NIXMSG_WRITE_ACCEPT_REPORT=1`)写入 `test/report/testdata/q2_results.json` 与 `test/accept/ACCEPTANCE.md`;`task q:report-q2` 可再生成 Markdown。普通 `go test`/`task check` 不改仓库文件。
|
||||
- 原因:避免每次单测改 `generated_at` 弄脏工作区。
|
||||
- 备选方案:固定时间戳始终写入仓库。
|
||||
- 影响:交付审阅以 `ACCEPTANCE.md` / `q2_results.json` 为准,需先跑过 `task q:accept`。
|
||||
|
||||
Reference in New Issue
Block a user