触发:定时自动化(测试负责人闭环 / review 档,已授权内网 E2E + 测试用例编写) 时间:2026-11-12 12:23 (GMT+8) | Workspace:
d:/cfc(浠艾福 XAF / cfclub) 对比基线:R167(2026-11-12 09:54)| 本轮轮次标签:R168
| 层 | 命令 / 目标 | 执行档 | 结果 |
|---|---|---|---|
| cfc-web 管理端单测 | jest --runInBand(无 coverage) |
review | ✅ 116/116 |
| cfc-frontend 小程序单测 | jest |
review | ✅ 609/3/12 |
| 授权内网 E2E 冒烟 | Playwright 无登录冒烟 cfc.iwintrue.com/admin + /frontend(hosts→192.168.16.251) |
review(内网已授权) | ✅ 两路 200 可达 |
| 后端全量回归 | mvn -q test(cfc-backend) |
review* | ⛔ 本轮回填受限(≈60min > 单小时预算) |
| config 化 E2E | npx playwright test(含 reset-db globalSetup) |
review | ⛔ 被 251 库 Access denied 阻断 |
| 依赖漏洞 / 性能压测 | SCA / k6 | execute(需联网) | ⛔ 未授权未执行 |
| 模块 | 套件 | 用例 | 通过 | 失败 | 跳过 |
|---|---|---|---|---|---|
| cfc-web(管理端) | 17 | 116 | 116 | 0 | 0 |
| cfc-frontend(小程序) | 42 | 624 | 609 | 3 | 12 |
| E2E 无登录冒烟(/admin+/frontend) | 2 路 | 2 | 2 | 0 | 0 |
| 后端全量(cfc-backend) | — | — | — | — | — (未执行,引用 R167 基线 3045 例 / 98.95%) |
--coverage 在共享运行器下 worker 被 SIGTERM(exit 143)触发 timeout(exit 124),重试去掉 coverage 后 116/116 全绿 → 超时系插桩开销,非用例失败。--coverage 超时未采集;引用 R167 末值(stmts/branch/func/line ≈ 10.08 / 6.06 / 7.48 / 9.95)作参考,需独立任务复测。--coverage,无新覆盖率数据;用例数稳定。检测到两份需求文档于 12:19 今日变更(晚于基线 R167 09:54),但对应测试资产已由本轮之前的小时级运行写入且内容对齐实现,本次不再新增文件以避免仓库抖动:
| 需求编号 | 变更文件 | 已存在且对齐的测试资产 | 状态 |
|---|---|---|---|
| CHAT-2026-11-12-V1(聊天仅会员可见) | cfc-frontend/utils/membershipGate.js 等 10 文件 |
cfc-frontend/__tests__/utils/membershipGate.test.js(TC-MG-U01~U07:无 token→false 不发请求;data.isActive===true→true;过期/缺字段/异常/非布尔→false 全断言) |
可运行,已计入 609 通过集 |
| INVITE-2026-11-12-V1(团队邀请改造) | ServiceRoleApplyDTO/ServiceRoleApplication/ServiceRoleApplicationServiceImpl.submit 等 8 文件 |
cfc-backend/src/test/java/com/etotem/cfc/unit/ServiceRoleApplyBindInviteContractTest.java(写于 12:19,精准镜像 submit():口径①②③、防冒领 DTO 不暴露 inviterUserId 直传、两级解耦不触发分销副作用) |
已写,本轮未编译执行(后端套件未跑) |
结论:本次无新增/修订用例文件;两项需求变更均已有当前对齐资产。盲目补写将造成仓库抖动,故跳过(符合"需求无变更则跳过编写"原则)。
P1a · signature.consignee 契约红(已知基线红)
① 问题描述:consignee-edit.vue 未内嵌 <hand-signature> 组件,且手签名 onConfirm 回调未被触发。
② 测试 bug 点:cfc-frontend/__tests__/pages/signature/signature.consignee.test.js:150(AC-R1 expect(stubs.onConfirm).toHaveBeenCalled() 收到 0 次);AC-R2 模板断言 /<hand-signature/ 不匹配。
③ 最优修改方案:研发确认该组件是否应内嵌 HandSignature 并接线 onConfirm;若系设计态则将该用例标 @skip+注释,否则补组件与事件。
④ 修改目的:消除契约红,保证收件人手签名链路真实可用。
⑤ 闭环:组件补 HandSignature + onConfirm 后重跑该 suite → 全绿即通过。
P1b · growthHistory.dayGroupView 预期红(设计态红)
① 问题描述:全无效业务日期记录分组时实际返回 7、期望 6,属"契约新增→预期红"。
② 测试 bug 点:cfc-frontend/__tests__/pages/growth-main/growthHistory.dayGroupView.test.js:287(RED-A7)。
③ 最优修改方案:研发确认 groupByDate 对全无效记录的跳过语义,按既定契约收敛实现或固化该红为预期。
④ 修改目的:分组装配逻辑与契约一致。
⑤ 闭环:实现对齐契约后该用例转绿,或显式登记为预期红。
P2 · cfc-web --coverage 在共享运行器超时
① 问题描述:jest --coverage 触发全量插桩,worker 被 SIGTERM(143)→ timeout(124),覆盖率未采集。
② 测试 bug 点:cfc-web jest --coverage 在受限运行器(无 coverage 时 116/116 仅 81s)。
③ 最优修改方案:覆盖率仅在 nightly 任务采集,或在 collectCoverageFrom 收窄到变更模块;单测日常跑不带 coverage。
④ 修改目的:日常闭环稳定快速,覆盖率纳入低频重任务。
⑤ 闭环:独立 coverage 任务跑通并产出 ≥R167 末值即通过。
P3 · 后端全量回归未回填
① 问题描述:mvn test 全量 ≈60min(R167 实测),超出单小时任务预算;.m2 为空时 CI 兜底。
② 测试 bug 点:cfc-backend 全量套件(非单点)。
③ 最优修改方案:将后端全量回归拆为独立 nightly 自动化(或仅跑变更模块 mvn test -Dtest=...)。
④ 修改目的:维持 ≥98.95% 基线且不过度占用小时任务。
⑤ 闭环:nightly 跑通 98.95%+ 即回填基线。
P4 · config 化 E2E 被 251 库 Access denied 阻断
① 问题描述:tests/playwright.config.js 的 globalSetup=e2e/helpers/db.js 执行 reset-db.sh 对 192.168.16.251 库 Access denied,整套 E2E 无法启动。
② 测试 bug 点:tests/e2e/helpers/db.js(execSync('bash reset-db.sh') → process.exit(1))。
③ 最优修改方案:为冒烟场景提供不依赖 DB 重置的入口(如 globalSetup 可跳过开关),或治理 251 库访问权限。
④ 修改目的:解除 E2E 启动阻塞,使 admin-desktop/frontend-mobile 登录流可跑。
⑤ 闭环:配置可跳过 DB reset 后跑通全量 E2E 即通过。
MACHINE_JSON_PATH 凭据 → 待核实登录态,降级为测试设计。signature.consignee AC-R1 根因(组件未实现 vs 测试桩问题)需研发确认。submit(),未编译执行 → 待 nightly mvn 验证 GREEN。npm audit --production + 后端 mvn org.owasp:dependency-check:check,High/Critical 即失败门禁。/api/ai/gate、/api/service-role/apply 做并发基准,P95<300ms 为通过标准;需授权压测窗口。MACHINE_JSON_PATH 凭据注入(绝不写明文)→ 待用户配置凭据后授权执行。结论:有条件通过(Conditional Pass)
复评条件(满足后升为"通过"):
mvn test 在 nightly/独立任务跑通并维持 ≥98.95%;约束遵守:未访问外部公网;未修改/提交/推送生产源码;未输出任何密钥/口令/令牌(凭据仅经 env/MACHINE_JSON_PATH 注入,报告中一律脱敏);现有 Jest 测试基于 mock API,不据此断言真实服务端行为。