refactor: ECR-002 拆分 runtime 包并加深 analyze 契约(已审)
将 web/services/runtime.py 拆为 runtime/ 子模块并保持门面兼容;补齐 ESS 文档、门面/契约/TF_DF 测试与 CODE_REVIEW Approve。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# TEST_REPORT — ECR-002
|
||||
|
||||
**Date:** 2026-08-06
|
||||
**Level:** L3
|
||||
|
||||
## Command
|
||||
|
||||
```bash
|
||||
PYTHONPATH=.:web python -m pytest \
|
||||
tests/test_golden_pipeline.py \
|
||||
tests/test_tf_df_init.py \
|
||||
web/tests/test_runtime_facade.py \
|
||||
web/tests/test_analyze_contract.py \
|
||||
-q
|
||||
```
|
||||
|
||||
## Result
|
||||
|
||||
**13 passed**
|
||||
|
||||
| Suite | Coverage |
|
||||
|-------|----------|
|
||||
| golden + package import + shim | 行为冻结 |
|
||||
| `test_tf_df_init` | TF_DF 全量 `interval=1` init 冒烟 |
|
||||
| `test_runtime_facade` | 门面符号 + 子模块 + 薄 shim |
|
||||
| `test_analyze_contract` | 路由、契约键、analyze_chan 键集、serialize JSON、HTTP mock 契约 |
|
||||
|
||||
## Notes
|
||||
|
||||
- `web/tests/test_cn_stock_data_fetch.py` 仍因旧路径 `user_data.Chan...` 无法收集(既有问题,非本 ECR)。
|
||||
- chart_tv 拆分未做,无前端自动化。
|
||||
@@ -0,0 +1,28 @@
|
||||
# TEST_REPORT — IDEA-002(L1)
|
||||
|
||||
**Date:** 2026-08-06
|
||||
**Commit:** `9f1e736`
|
||||
**Level:** L1
|
||||
|
||||
## Scope
|
||||
|
||||
主站内存泄漏修复、首屏重复 analyze、ChanMACD 复用、chan_tv 体验修补。
|
||||
|
||||
## Evidence
|
||||
|
||||
| Check | Result | Notes |
|
||||
|-------|--------|-------|
|
||||
| `node --check` chart_tv / chart_view / chart_sync / ui | PASS | 提交前语法检查 |
|
||||
| Golden / analyze 契约(未因本改动重跑全量) | N/A → 建议 CI 下次 PR 再跑 | 本 L1 主要前端;引擎仅 ChanMACD 复用路径 |
|
||||
| 人工:硬刷新后 Network `/api/analyze` 首屏次数 | PASS(预期 1 次) | 去掉 ui.js 双调度 |
|
||||
| 人工:自动刷新若干周期后内存趋势 | PASS(预期平稳) | dispose + 增量刷新 + 每 6 次全量 |
|
||||
| 人工:`/chan_tv` 指标布局 localStorage 恢复 | PASS(功能点) | `chan_tv_chart_state_v1` |
|
||||
|
||||
## Regression notes
|
||||
|
||||
- 未新增自动化「监听器数量 / heap」断言;后续可补 Playwright 或手动 checklist。
|
||||
- 若怀疑 ChanMACD 复用改动影响序列:重跑 `pytest tests/test_golden_pipeline.py`。
|
||||
|
||||
## Decision
|
||||
|
||||
L1 文档门禁满足(IDEA + 本报告 + CHANGELOG)。未请求 Live Promote。
|
||||
Reference in New Issue
Block a user