Progress tracking now lives in a separate project. Drop the server, docs, and module-boundary entries without restoring engineering-dashboard. Co-authored-by: Cursor <cursoragent@cursor.com>
4.6 KiB
4.6 KiB
个人工程中控台(engineering-dashboard)测试报告
一、 测试背景 (Background)
仓库需要独立于产品后台的本地只读工程中控台,避免把文档 done 误读为已合并或已部署。方案见 设计。本报告验收一期 serve / export 实现。
二、 测试目标 (Test Objectives)
- 实时 HTML、离线 HTML、JSON 共用
generation_id/revision_id - 计划 / Git 实施 / 验证 / 实装四轴独立
- rdev、dev ahead、main events 分叉样本(单元夹具)按方案输出
- 单源失败可 degraded;loopback / token / Host / 只读方法防护生效
- 导出 HTML
0600、可离线阅读 Markdown、不嵌 assets
三、 测试方案与环境 (Test Plan & Environment)
- OS: Linux;Go module
chat-agent-system - 工作树:
.worktrees/feature-engineering-dashboard(feature/engineering-dashboard) - 层级:包单元/集成测试 + CLI 真实
serve/export冒烟(只读观察,未启停共享 compose)
四、 预期结果 (Expected Results)
| 用例 | 预期 |
|---|---|
| 模型四轴 | doc done 不改 Git/部署 facets |
| rdev 夹具 | planned / unclaimed / 实装 unknown |
| dev ahead | ahead>0 且备注含未确认远端 |
| main fork | readiness ok + containers partial + conflict |
| HTTP | POST 405;无 token 401;坏 Host 403;非 loopback bind 拒绝 |
| export | 权限 0600;含 identity;无 script breakout |
五、 实际测试结果与判定 (Actual Results & Evaluation)
5.1 单元与包测试
- 测试输入:
go test ./internal/engineeringdashboard/ ./cmd/engineering-dashboard/ -count=1 - 实际输出:
ok chat-agent-system/internal/engineeringdashboard 0.009s
? chat-agent-system/cmd/engineering-dashboard [no test files]
- 判定: PASS
- 耗时: ~0.01s(包测)
5.2 go vet
- 测试输入:
go vet ./internal/engineeringdashboard/... ./cmd/engineering-dashboard/... - 实际输出: (无输出)
- 判定: PASS
5.3 真实 export
- 测试输入:
go run ./cmd/engineering-dashboard export --repo <worktree> --output /tmp/engdash-export.html - 实际输出: 文件权限
600;体积可离线打开;含 CSP 与 snapshot identity - 判定: PASS(
stat -c '%a'→600)
5.4 真实 serve 冒烟
- 测试输入:
engineering-dashboard serve --repo <worktree> --addr 127.0.0.1:8799,随后 curl - 实际输出:
{"ok":true}
generation gen_1
revision rev_3378ee42f645c4ab1af69cf691c00103
tasks 50
docs 452
sources [('docs', 'ok', 'fresh'), ('git', 'ok', 'fresh'), ('runtime', 'ok', 'fresh')]
POST_reject HTTPError 405
no_token=401
bad_host=403
- 判定: PASS(HTML/JSON 同源 identity;安全负例符合预期)
- 说明: 工作树上尚未合入未跟踪的 rdev 文档树;rdev/dev-ahead/main-events 样本契约由包内 fixture 单测覆盖(
TestModel_*/TestReconcile_*)。
5.5 夹具验收样本(单元)
| 样本 | 测试 | 判定 |
|---|---|---|
| rdev 已计划未实施 | TestReconcile_RDevPlannedUnclaimed / TestModel_AcceptanceSamplesAxes |
PASS |
| local ahead origin | TestReconcile_DevAheadSample / TestGit_AheadDoesNotClaimRemoteAvailable |
PASS |
| main ready vs events restarting | TestReconcile_MainEventsForkConflict / TestRuntime_ReadyOKAndEventsRestarting |
PASS |
| Herdr vs 产品 PI Runner | TestModel_ClaimedWithoutRuntimeKeepsActivityUnknown |
PASS |
六、 自动化测试套件汇总 (Test Suite Execution)
对本工具包:
go test ./internal/engineeringdashboard/ ./cmd/engineering-dashboard/ -count=1
# ok engineeringdashboard
go test -short ./internal/engineeringdashboard/... ./cmd/engineering-dashboard/... -count=1
# ok
go vet ./internal/engineeringdashboard/... ./cmd/engineering-dashboard/...
# clean
git diff --check
# clean
全仓 go test -short ./... 在合入 dev 占槽时于主仓执行(本工具未改产品包)。
七、 测试结论与后续优化建议 (Conclusion & Next Steps)
- 结论: 一期达到合并标准(独立 CLI、同源快照、四轴、安全边界、导出)。
- 后续: 跨快照历史、远端 CI/Gitea、受限 Markdown/Mermaid、Agent 查询 API(设计附录已列,不在本期)。