automation-run-2026-11-11-R152.md 6.0 KB

自动化执行记录 · 第 152 轮(2026-11-11 19:16–20:40 GMT+8)

执行档 review(离线):未联网装依赖、未启停服务、未改生产代码;改动仅限测试目录(1 增 1 删)。 基线 3c3d4b0a5 = origin/cfclub(跑前跑后一致);窗口 12481394b..3c3d4b0a5 仅 1 个 auto bump,零功能源码。

1. 时间线

时刻 动作 结果
19:16 记忆召回(automation memory) 读至 R148 段 + R149 提交信息(R150/R151 未入库)
19:16 环境探针 JDK 1.8.0_25 ✓、Maven 3.6.1 ✓、D: 93G 可用(69%)
19:17 节点/线上探活 251:4096=200、251:9000=200、189:4090=200、204:4090=000、/admin 302、/frontend 302、/ 404
19:17 后端全量启动(首次误落仓库根,无 pom → 立即改 cfc-backend) 见 §5 教训 ①
19:17 251 langgraph 首次派发 失败:/usr/bin/python: No module named pytest
19:17 189 admin E2E 派发(后台) 5/5 通过(85s,EXIT=0)
19:19 线上匿名鉴权矩阵(POST) 5/5 = 401;admin/overview = 200+code:400;dx = 404/404
19:20 SRS 闸门扫描 specs 201 / test-cases 15 / user-scenarios 11 / API_REFERENCE 零变更
19:20 251 改用 .venv/bin/python 重新派发 51 例 46 过 5 红(128.76s)
19:23 cfc-web Jest 116/116(23.7s)
19:24 根级黑盒 Jest 23 = 7 过 / 16 红;发现 3 套件中 1 个收集期失败(1a2b)
19:28–19:35 浏览器本机:fe / shop / health / dx 6/6、4/4、13/13、2 skip
19:32–19:36 前端 Jest 616 = 601/3/12
19:36–19:44 用例锚点按文件统计(15 文件) 全局 82/357 = 23.0%
19:44 发现后端日志异常洪水 cfc-scheduler 行占 28.6%;定位 @EnableScheduling + @SpringBootTest
20:13 后端全量完成 347 类 / 2946 例 / 2925 过 / 17 红 / 4 skip(55:56)
20:17 红类×CI 排除清单交叉核对 26/33 已转绿、3 红类漏项 → B-152-1/2
20:25–20:35 自处置 B-152-5:迁移 1a2b 用例 单文件 PASS;前端 617 = 602/3/12
20:36 线上/节点二次复核 251 chat 200(6.4s)、analyze 200(5.5s)、health 200(8ms)
20:40 报告 + 通知 + 台账 见 §4

2. 分派结果

节点 通道 命令要点 结果
189:4090 opencode POST /api/shell(PowerShell 5.1,; 分隔) cd C:\code\cfc; git rev-parse --short HEAD; git hash-object tests\e2e-live\admin-live.spec.js; cd tests; npx playwright test -c playwright.config.live.js --project=admin-desktop --workers=1 5/5,EXIT=0,1.3m;HEAD 3c3d4b0a5、blob 4703d73fb 与本机一致
251:4096 opencode shell 直连(setsid nohup + 落盘,单次读) cd /sc-data/cfc/cfc-langgraph && .venv/bin/python -m pytest -q --ignore=tests/qna --ignore=tests/test_chat.py > /tmp/r150_pytest.log 51 例 46 过 5 红,128.76s;节点 HEAD 3c3d4b0a5 = 本机

3. 关键实测数字

  • 后端:Tests run: 2946, Failures: 16, Errors: 1, Skipped: 4;347 XML;353 测试源 0 编译错;classes 2330;*.dump 1;总耗时 55:56。
  • 10 红类:EnergySystemFlowTest(6) / DimensionRegistryMapContractTest(3) / OrchestrationEngineTest(1) / OrchestrationIntegrationTest(1) / MembershipPaySwitchTest(1) / PaymentServiceORDRoutingTest(1) / UserServiceWechatLoginTest(1) / UserServiceWechatLoginContractTest(1) / TeamProfitCronContractTest(1) / GuideModuleIntegrationTest(1E)。
  • 慢类 Top6:ProductController 334s、AdminFamilyOverview 324s、UserServiceFamilyNameLink 283s、Activity 174s、Payment 139s、GuidePackage 118s(合计 1372s ≈ 全量 41%)。
  • 日志构成:73,267 行中 20,965 行为 cfc-scheduler-*(28.6%);Spring 上下文启动 34 次。
  • 合计:3783 例 / 3724 过 = 98.44%(剔 skip 98.91%);红 41、跳 18。

4. 产出文件

文件 类型
docs/tdd/orchestration/report-test-2026-11-11-R152.md 主报告(0 模板 / 20 类矩阵 / 缺口 / 9 条五要素 / 门禁)
docs/tdd/test/automation-run-2026-11-11-R152.md 本文件
docs/tdd/notice-2026-11-11-R152-研发通知.md 研发交接通知
docs/tdd/test/blockers.md 追加 R152 段(+B-152-1~5,更新 12 条存量)
docs/tdd/test/automation-status.md 附录 R152
cfc-frontend/__tests__/games/1a2b.test.js 新增(TC-F-G01,迁移 + 修正)
tests/unit/games/1a2b.spec.js 删除(测试侧自处置)
tests/TRACEABILITY-MATRIX.md 入库(此前游离)

5. 本轮教训(写入 blockers 方法论段)

  1. Maven 工程根不是仓库根:d:/cfc 无 pom.xml,必须在 cd cfc-backend 后跑 mvn;否则 0.4s 即 MissingProjectException,容易被误读为「环境缺失」。历轮「后端实跑」均隐式依赖正确 cwd,本轮首次显式记录。
  2. 跨节点 pytest 必须用节点 venv:251 系统 /usr/bin/python 无 pytest,只能 .venv/bin/python -m pytest;派发器若用裸 python 会以「环境未装」形式失败,与「通道不可用」易混。
  3. EXIT=$? 未落盘(B-126 口径失效再现):本轮 kick 命令用双引号包 bash -c,$? 被本地 shell 先展开 → 日志无 EXIT= 行;只有 pytest summary 可作依据。修法:单引号包 bash -c '... echo EXIT=$? >> LOG'。
  4. CI 排除清单要与实测红类对表:清单自第 69 轮冻结,26 类已转绿仍未解禁、3 个新红类未纳入 → 门禁既漏拦又必红。此后每轮把「实测红类集合」与 .gitlab-ci.yml:61 做差集核对。
  5. @SpringBootTest + @EnableScheduling 会在整个全量期间常驻:日志洪水 28.6%、上下文启动 34 次、6 个慢类占 41% 时间。判「跑测卡死」前先看 cfc-scheduler 行数与当前类 elapsed。
  6. 「文件存在」≠「用例会执行」:根级 1a2b.spec.js 收集期就失败,历轮 23 例口径已把它排除;核对用例落库必须同时看 jest/vitest 的收集结果(suite 数),不能只看文件数。