automation-run-2026-11-12-R156.md 5.6 KB

自动化执行记录 · 第 156 轮(2026-11-12 00:50 GMT+8)

执行档 review(离线 + 内网已授权):未联网装依赖、未启停服务、未改生产源码/测试。 基线:跑测起点 722de8f37;窗口内远端合入 1 个功能变更 3d35ab714(会员门控,cfc-frontend 10 文件 +124/−29),收尾 rebase 至 c7d921bcf 并增量复验前端。 本轮全部套件实跑(无采信):后端 61:02 全量、前端/管理端 Jest、根级黑盒、4 组浏览器、langgraph@251,另加窗口内合入后的前端增量复验。

1. 实测数字

模块 命令 结果
cfc-backend 全量 cd cfc-backend && mvn -o -B clean test 347 类 / 2946 例 / 2925 过 / 16F+1E+4S = 99.29%,BUILD FAILURE(红例存量),61:02
cfc-web npx jest --coverage 17 套 / 116 例全绿(EXIT 0,179.2s);Lines 9.95% / Branch 6.06% / Funcs 7.48%
cfc-frontend(合入前) npx jest --coverage 617 = 602 过 / 3 红 / 12 跳(EXIT 1,88.6s)
cfc-frontend(合入后增量复验) npx jest --coverage 624 = 609 过 / 3 红 / 12 跳(EXIT 1,47.4s);3 红集合不变;Lines 53.57% / Branch 29.16%
新增用例 npx jest __tests__/utils/membershipGate.test.js 7/7 全绿(TC-MG-U01~U07,覆盖 utils/membershipGate.js)
根级黑盒 cd tests && npx jest -c jest.config.js 23 = 7 过 / 16 红(EXIT 1,全 fetch failed → 本机 9082 未启动,B-36 第 50 轮)
langgraph@251 .venv/bin/python -m pytest -q --ignore=tests/qna --ignore=tests/test_chat.py 51 例 / 41 过 / 10 红 / 126.67s(R155 为 48/3,恶化 7)
浏览器 admin@189 --project=admin-desktop 5/5(EXIT=0,1.4m);节点 HEAD 3c3d4b0a5、spec blob 4703d73fb = 本机
浏览器 frontend(本机) --project=frontend-mobile 6/6(EXIT=0,1.0m)
浏览器 shop(本机) --project=shop-api 4/4(EXIT=0,15.4s)
浏览器 health(本机) -c playwright.config.health.js 13/13(EXIT=0,14.6s)
浏览器 dx-bridge(本机) --project=dx-bridge 2 skip(端点 404,B-DX-1 第 16 轮)
线上鉴权探针 5 个端点匿名 POST 5/5 = 401(B-69 维持销号)
线上 B-142-1 匿名 POST /api/admin/families/overview 200 + code:400(第 10 轮未修)
站点根 / /admin /frontend 404 / 302 / 302

合计:3790 例 / 3726 过 = 98.31%(剔 skip 98.78%);红 46 = 后端 17 + 根级 16 + langgraph 10 + 前端 3;跳 18 = 后端 4 + 前端 12 + dx 2。

2. 闭环判定

  • 零回归第 14 次:后端 17 红(10 类)与 R152/R154 逐类逐例一致;前端 3 红集合不变;浏览器 28/28 零漂移。
  • 唯一恶化:langgraph 3 红 → 10 红(test_analyze 1 + test_auto_tag 5 + test_intent 4),根因 429 免费额度耗尽 + 401 记忆召回 key 失效 + intent_classifier.py:62 静默兜底 → 环境红,非代码回归。
  • 新发现 B-156-1:nutrition_age_dosage 三重不一致(DDL 无 product_id 列却建该索引 → 34/34 上下文建表失败;实体 updateTime 无对应列;NutritionProductService:48 死注入)。
  • B-152-1/-2 未修:CI BACKEND_OBSERVED_CLASSES 漏拦 3 个当前红类、仍含 26 个已转绿类。
  • B-154-1 观察 2/2:pytest 本轮 126.67s 正常收尾,无 EXIT=124 挂起 → 建议销号(但退出码未落盘,B-126 问题独立保留)。
  • SRS 闸门:specs 201 / test-cases 15 / API_REFERENCE 窗口零变更(G12 合规);但窗口内实现有 1 处落地(3d35ab714 会员门控)→ 按其覆盖率缺口新增 7 条用例(membershipGate.test.js),合入时该文件零测试。
  • 增量复验:合入后前端 624 例 / 609 过 / 3 红,红例集合与合入前一致 → 功能合入零回归。

3. 降级 / 未实测(如实登记)

  1. 后端覆盖率与变异测试:pom.xml 无 JaCoCo、无 PIT → 未实测。
  2. 安全测试 / 依赖漏洞扫描:execute 档需联网授权 → 未授权未执行(G9 ❌)。
  3. 性能 / 压测 / 可靠性专项:无脚本、需联网 → 未授权未执行。
  4. 登录态业务流 E2E:无 MACHINE_JSON_PATH 凭据 → 仅游客态 + 鉴权契约。
  5. 兼容性 / 无障碍:chromium 单引擎、无 axe → 未发现资产。
  6. 探索性测试:无 charter 记录。
  7. langgraph 全栈 app.main(对话/RAG/whisper):本机默认不启 → 仅验 251 最小服务套件。

4. 结论

⛔ 不通过(较 R155「有条件通过」收紧):✅G1 98.31% / G3 / G4 116 / G5 / G6 28-28 / G8 5-5 / G10 三节点 / G12;❌G2 46 / G7 41-51 / G9 / G11 / G14;⚠️G13 17 临界。

5. 交付物

  • docs/tdd/orchestration/report-test-2026-11-12-R156.md(主报告:测试负责人模板 + 20 类矩阵 + 9 条五要素 + 8 项缺口 + 14 门禁)
  • docs/tdd/test/automation-run-2026-11-12-R156.md(本文件)
  • docs/tdd/test/notice-2026-11-12-R156-研发通知.md(研发交接通知)
  • cfc-frontend/__tests__/utils/membershipGate.test.js(新增 7 例,TC-MG-U01~U07)
  • docs/tdd/tools/dispatch_251_pytest.cjs(改用 .venv/bin/python + 退出码先存变量再落盘,修 B-126 诱因)
  • docs/tdd/test/blockers.md(新增 B-156-1,更新 B-145-1/B-152-1/B-152-2/B-152-3/B-142-1/B-142-2/B-134-4/B-154-1/B-126/B-36/B-DX-1/B-69)
  • 实测日志:_r156_backend.log / _r156_web.log / _r156_fe.log / _r156_root.log / _r156_189_admin.log / _r156_e2e_{fe,shop,health,dx}.log(工作区,不入库)