automation-run-2026-11-09-R95.md 6.6 KB

自动化测试执行记录 · R95(2026-11-09 01:00 ~ 03:20)

汇报版见 docs/tdd/orchestration/report-test-2026-11-09-0320.md;本文件只记可复现的执行事实与证据路径。

0. 基线与环境

项 值
仓库/分支 d:\cfc · cfclub
起始 SHA a80a6115a(= origin/cfclub,同步后一致)
工作区 同步时保护 WIP(stash)→ checkout cfclub → pull --rebase;源码级 WIP 0
JDK / Maven D:\jdk1.8.0_25 / IDEA 内置 Maven
节点分工 本机(204):浏览器串行 + 后端全量 + 前端 jest + 根级 jest + langgraph 兜底 pytest;251:opencode 派发 langgraph pytest + chat live 复核

1. 后端全量(mvn -o -B clean test)

Tests run: 2753, Failures: 104, Errors: 11, Skipped: 4      → passed 2634 = 95.68%
classes=328 red_classes=31 red_cases=115
BUILD FAILURE(仅测试失败,MVN_EXIT=1)
证据:_r95_backend.log、_r95_agg.json(工具 docs/tdd/tools/test_report_metrics.py 聚合)
  • 相比 R94(2664 例 / 49 红 / 20 红类 / 98.01%):+89 例 / +66 红 / +11 红类 / -2.33pp。
  • 新增 66 红全部来自 11 个 Guhe 契约类(GuheEvidenceIsolateContractTest 11F、GuheNoPathMapContractTest 10F、GuheKbVersionSenseContractTest 9F、GuheV2RouteContractTest 6F、GuheShellGuardContractTest 5F、GuheGateStrainBlockContractTest 5F、GuheLowSideAggregateContractTest 5F、GuheKbFieldExposeContractTest 3F、GuheVersionSplitContractTest 4F、GuheLowSideNoSupplementContractTest 4F、GuhePageTailCleanContractTest 4F),最近提交 d5c656cf3(11-09 01:19 merge S-cfc-81)→ 属研发 HEAD a80a6115a 汇报「19 RED 测试侧契约批次在途」,预期 RED,非回归。
  • 非 Guhe 部分 = 20 类 / 38F+11E = 49 红,与 R94 的 49 红(38F+11E)数值完全一致,无生产回归信号。
  • B-69 连续第 5 轮未修:MindFortuneControllerTest 期望 401 实得 400(/api/mind/ 未入 LOGIN_REQUIRED_PATHS)。

2. 前端 / 管理端 / 根级

套件 命令 结果 与 R94 对比
cfc-frontend npx jest --no-cache 408 例 / 365 过 / 41 红 / 2 skip 394→408(+14);24→41 红
cfc-web 同上 116/116 全绿 零漂移
tests/ 根级 cd tests && npx jest 23 例 / 7 过 / 16 红 零漂移(B-36 黑盒环境依赖)

前端 41 红构成(逐套件实跑确认):

  • recommendation.uiRework.test.js(S-cfc-79 diet)24 红,与 R94 一致,预期 RED(B-73)。
  • recommendation.participantSelect.test.js(S-cfc-80 共餐人选择)8 红 / 1 skip / 1 占位绿(commit 3b0ec73b2 新入库契约,预期 RED)。
  • signature.canvas2d.test.js(本轮新增 v2 契约)9 红 / 2 绿(预期 RED,S4-1/S4-2 未实施;B-81)。
  • 旧横屏 signature.landscape.superseded.js(7 例,含 3 例验证已作废 S1/S2/S3 的假红)已从 jest 执行范围移除。

3. 浏览器 E2E(本机单节点串行)

配置 用例 结果 耗时
playwright.config.live.js admin 5 + frontend 6 + shop 4 15/15 passed 3.7m
playwright.config.health.js health-contract 13 13/13 passed(B-61 闭环) 19.4s
playwright.config.dxbridge.js(临时配置 _r95_dx_cfg.js,跑完删除) DX 桥接 2 2 skipped(404 记 skip) 9.8s

注:playwright.config.dxbridge.js 不在版本库(临时生成,跑后删),主 playwright.config.js 仍受 B-80 阻断(reset-db.sh 凭据 1045)。

4. langgraph(本机兜底 + 251 实派)

维度 结果
本机 venv pytest(--ignore=tests/qna) 44 / 32 / 12(238.4s),与 R94 逐例一致。12 红 = analyze 2(B-65)+ auto_tag 5 + chat 1(本机 chromadb DLL 500)+ intent 4(API key 401)
251 实派 pytest(opencode bash,.venv/bin/python -m pytest tests/) 44 collected / 36 passed / 8 failed / 71.7s(首次实质落地「langgraph 派 251」指令)
251 8 红构成 analyze 2(B-65 checkpointer thread_id,连续第 5 轮)+ auto_tag 5 + chat 1(装置 ASGITransport 不触发 startup 致 chromadb/记忆未初始化;live chat 200 证明非生产缺陷)
251 intent 4 例 251 绿(模型可用)/ 本机红(key 401) → 环境差异,权威口径以 251 为准(B-82)
251 :9000/api/v1/chat B-77 解除:422(参数缺)→ 422(int_parsing)→ 200 完整问答 JSON(儿童成长家庭助手),live 端到端可用
251 opencode 派发通道 B-56 根因定位:本地脚本默认 provider=axon 不存在 → 改 etotem/deepseek 后 OUTCOME succeeded;脚本已修(识别 succeeded + 拉 assistant 文本)

5. SRS 变更 → 用例更新(签名 v2)

动作 结果
读 v2 SRS DOC-2026-11-09-signature-canvas2d-rewrite(取代 11-08 横屏,整份作废) 确认 S4-1 竖屏直签 / S4-2 canvas 2d 契约
核验 signature.vue / hand-signature.vue 现状 均为旧实现(旧横屏 + uni.createCanvasContext)→ v2「待开发」
新增 signature.canvas2d.test.js 11 例:9 RED 新契约 + 2 GREEN 保留契约(computeCanvasHeight 保留、组件 props/emit 不变)
归档 signature.landscape.superseded.js 旧横屏 7 例(3 例假红)不再参与 jest 匹配
更新 tests/test-cases/signature.md v2 契约台账(TC-SIG2D-01~08 + -E×2 + -N×2)

6. 节点分派纪律遵守

  • 251:langgraph pytest 派发指令实质落地(上轮 B-78 阻断已解除),单节点单浏览器任务(opencode 非浏览器)。
  • 204(本机):浏览器 15+13+2 单节点串行(workers=1),后端全量 + 前端 jest 串行执行,未并发同节点多浏览器。
  • 浏览器套件用隔离配置(live/health/dxbridge),未触碰主配置(B-80 阻断未变)。

7. 证据清单

  • _r95_backend.log(后端全量日志)、_r95_agg.json(聚合)
  • _r95_pytest.log(本机 langgraph pytest)
  • _r95_dx_cfg.js(DX 临时配置,已删除)
  • _dispatch_251.cjs(251 派发脚本,本轮修正 provider/结果解析)
  • 251 派发会话:ses_e43af17beffeG46teMrzft7srI(首次成功派发)、ses_e439748c6ffeFGAb34m2J5w9Mp(pytest 实派)、ses_e439319d1ffejz7626dCYXFa85(chat 200 验证)
  • 签名 v2 契约:cfc-frontend/__tests__/pages/signature/signature.canvas2d.test.js(新增)、signature.landscape.superseded.js(归档)
  • 台账:tests/test-cases/signature.md(v2 重写)、docs/tdd/test/blockers.md(B-77/B-78/B-75 系列更新 + B-81/B-82 新增)
  • R94 基线:docs/tdd/test/automation-run-2026-11-08-R94.md