主理人:陆谨(软件测试专家团)|执行档:review(已授权内网 cfc.iwintrue.com,不联网,不提交不推送) 触发:定时自动化(每小时)· @skill TDD 多智能体研发测试调度 工作区:d:/cfc | 当前 HEAD =
69f8820d8| 需求闸门基线 =c83c4eb25(01:40 建立)
⚠️ 更正声明(08:46,相对本版初稿):初稿 4.3 节称「现成 E2E 脚本:检索为空」有误。经用户反馈并重新以排除
node_modules/.git/.worktrees/.wt-*的精准检索核实,本仓库实际存在大量端到端/契约测试资产:主树d:/cfc/tests/e2e/有 69 个 Playwright spec 文件(约 410 个测试方法) 及playwright.config*.js;cfc-langgraph/tests/有 12 个 pytest 文件 / 47 个测试函数(即「12/55」中已写部分);并由 218 个 SC 派生出 729 条结构化用例(见docs/tdd/ci/CI_READINESS_2026-11-05.md、docs/tdd/orchestration/DEV_GOAL_user_scenarios.md)。原「检索为空」系初稿依赖了过期结论且仓库级 glob 超时所致,特此撤回。真实缺口不是「无脚本」,而是资产孤儿化:存在但执行数=0、未接 CI、未在用户场景框架下端到端执行(详见 4.3 与第七节 P1)。
345cf745e)→ ⛔不通过(有条件);后端 1528 用例 / 1408 通过 / 71 失败 / 49 错误 / 4 跳过(复用 04:30 实证,源码当时零变更);E2E 无凭据降级;SRS 零变更跳过编写。345cf745e 起发生实质变更(11 个测试文件新增/修改 + 3 个生产源文件改动),故 04:30 的 1528 实测不可复用;cfc-web Jest 连续多轮 12/90 全绿;需求文档仍零变更 → 编写闸门仍关闭。mvn 二进制不可用(仅 /d/maven/apache-maven-3.6.1-bin.zip 未解压,无 bin/mvn),后端全量执行依铁律降级为「未实测 + 测试设计 + 缺口诊断」。cfc-backend(Spring Boot 2.7.18 + MyBatis-Plus + JDK8,端口 9082)、cfc-web(Vue2 + Element UI 管理端,端口 8082,Jest 单测)、cfc-frontend(uni-app 微信小程序)、cfc-langgraph(Python FastAPI AI 服务,端口 9000)。@PostMapping、JWT Bearer、统一 Result<T>、-DskipTests=false 强制关 skipTests、mvn 默认 <skipTests>true 假绿坑、新增接口须查 API_REFERENCE。/admin /frontend 端到端。| 模块 | 动作 | 结果状态 |
|---|---|---|
| cfc-web | npm test(Jest,CI 模式,axios-mock-adapter mock API) |
✅ 实跑 |
| cfc-backend | mvn -q -DskipTests=false test |
⚠️ 未实测(mvn 不可用)→ 降级 |
| 内网 E2E | 探活 cfc.iwintrue.com/admin、/frontend(Playwright 1.63.0 已装;无现成脚本) |
⚠️ 探活成功,无凭据 → 降级 |
| 测试用例编写 | SRS/PRD/API 变更闸门检测 | 零变更 → 跳过编写 |
axios-mock-adapter mock API,不访问真实服务,不据此断言真实服务端行为。vue-router 有 Duplicate named routes 警告(非失败);与 05:42 轮 12/90 完全一致 → 无前端回归。mvn 二进制(zip 未解压),依铁律不自行安装/解压依赖,降级为测试设计 + 缺口诊断,标注「未实测」。345cf745e 起后端源码/测试已实质变更(见 4.4),04:30 的 1528/1408/71/49/4 不再代表当前套件。/admin → HTTP 302;/frontend → HTTP 302(服务可达,重定向至登录);hosts 解析 192.168.16.251 cfc.iwintrue.com 确认。d:/cfc/tests/e2e/:69 个 Playwright spec 文件(402 个 test() 用例 + describe/step 包裹,约 410 方法),含 roles/{admin,child,parent,teacher} 分角色登录与流程、api/* 接口冒烟与安全/兼容专项(nonfunc-security.spec.js、nonfunc-perf-compat.spec.js);配置 playwright.config*.js(base/api/func/smoke/noreset)。cfc-langgraph/tests/:12 个 pytest 文件 / 47 个测试函数(即「12/55」已写部分;规划 55 个)。SC-角色-NN 派生 729 条(正常流/异常流/权限流),见 docs/tdd/orchestration/DEV_GOAL_user_scenarios.md §四与 docs/tdd/ci/CI_READINESS_2026-11-05.md。.gitlab-ci.yml/.github/workflows/Jenkinsfile,仅 docs/tdd/ci/gitlab-ci.draft.yml 草案且 when: manual 未启用),且未在用户场景框架下端到端执行;本闭环轮因无登录凭据 + 后端/前端服务未起 + 不重启远端,同样未实跑。→ 由「无脚本→仅设计」更正为「资产存在但孤儿化」,见第七节 P1 与第十节。345cf745e 至 69f8820d8)JwtInterceptorContractEdgeTest、JwtInterceptorLoginRequiredTest、JwtInterceptorWechatLoginTest、ScG06JwtGuardTest、AuthWechatLoginContractTest、TaskControllerCreateTaskTest、TaskControllerReviewTest、TaskServiceReviewTest、UserServiceWechatLoginContractTest、UserServiceWechatLoginTest、FamilyUserSwitchRoleTest。cfc-backend/src/main):对应 SC-P-03 双角色切换 API 修复、SC-G-06 越权接口拦截实现。docs/tdd/SRS.md、docs/需求分析/、docs/superpowers/specs/、docs/superpowers/api/API_REFERENCE.md 自基线 c83c4eb25 起的提交列表 为空(git log 核实)。cfc-frontend/__tests__/api/api.test.js、cfc-frontend/__tests__/utils/indicator-change.test.js、docs/tdd/test/blockers.md(非 baseline 以来提交,非 SRS 触发),不开启编写闸门,列为「待核实」。69f8820d8,供下次变更检测对比。① 问题描述:本环境无可用 mvn 二进制(/d/maven 仅为未解压 zip),无法编译/运行后端 1528+ 用例,且源码已变更使 04:30 实证失效。
② 测试 bug 点:环境缺失 bin/mvn(非仓库问题);cfc-backend/pom.xml:28 <skipTests>true</skipTests>。
③ 最优修改方案:在 CI/研发环境用 mvn -o -DskipTests=false test 实跑;本自动化环境补装 Maven(解压 /d/maven/apache-maven-3.6.1-bin.zip 并加入 PATH,须用户/平台授权)。
④ 修改目的:恢复后端回归门禁的实证能力,使 38 类漂移与新增契约测试可量化闭环。
⑤ 问题闭环:解压并配置 Maven 后实跑 mvn -o -DskipTests=false test,产出真实 PASS/FAIL/ERROR 与(须加 JaCoCo 后)覆盖率;通过标准=全量 GREEN 且覆盖率≥阈值。
① 问题描述:历史 1528 用例中 120 非通过(71 fail + 49 error),集中于 38 个测试类,根因为测试按旧契约断言,与已重构生产代码不一致。
② 测试 bug 点:cfc-backend/src/test/**(状态码 500↔410/403/400/5001、术语 childId→memberId、文案漂移、Mockito 误用);B-10 已修 CfBalanceControllerTest.java。
③ 最优修改方案:逐类对齐生产契约——更新期望状态码、字段名(memberId)、文案常量;修正 Mockito stub;优先高频契约类。
④ 修改目的:使后端套件真实可执行并达标,恢复回归门槛,避免假绿/假红误导发布。
⑤ 问题闭环:mvn -o -DskipTests=false test 达 BUILD SUCCESS(非通过=0)且后续每小时复验稳定。
① 问题描述:3 个 @SpringBootTest 硬编码本地 DB 地址,在非 localhost 环境必红,掩盖真实代码质量。
② 测试 bug 点:AdminFamilyOverviewControllerTest.java、FamilyAdminOverviewServiceTest.java、UserServiceFamilyNameLinkTest.java(硬编码 127.0.0.1:3306)。
③ 最优修改方案:@DynamicPropertySource + 配置化数据源(从 application-test.yml 读取),移除硬编码 localhost。
④ 修改目的:消除环境耦合红,区分"环境红"与"代码红"。
⑤ 问题闭环:在隔离环境跑通这 3 类后 GREEN。
① 问题描述:pom 默认 <skipTests>true,单独 mvn test 会跳过全部测试并报告成功,易误判全绿。
② 测试 bug 点:cfc-backend/pom.xml:28;surefire 引用 ${skipTests}(:232)。
③ 最优修改方案:CI/本自动化强制 -DskipTests=false;或经研发确认将默认改为 false。
④ 修改目的:防止漏测被当通过,保证实测真值。
⑤ 问题闭环:显式 -DskipTests=false 后跑出真实结果。
① 问题描述:内网服务可达(302),但本环境无登录凭据,无法实跑端到端用例,仅能产出测试设计。 ② 测试 bug 点:无现成 E2E 脚本(检索为空);无凭据注入机制。 ③ 最优修改方案:建立凭据注入(环境变量/加密配置,禁明文落盘与提示词);补 E2E 脚本覆盖 /admin 登录后关键路径、/frontend 首页与核心流程。 ④ 修改目的:把内网可通达服务纳入真实端到端验证。 ⑤ 问题闭环:提供凭据后实跑 Playwright 用例关键路径全绿。
① 问题描述:仓库已沉淀大量端到端/契约测试资产(729 结构化用例 / 218 SC;主树 69 个 Playwright spec≈410 方法;cfc-langgraph 12 个 pytest/47 函数),但执行数=0,既未接入 CI,也未在用户场景框架下端到端执行,处于「写了不跑」状态。
② 测试 bug 点:根目录无 CI 入口(.gitlab-ci.yml/.github/workflows/Jenkinsfile 均不存在),仅 docs/tdd/ci/gitlab-ci.draft.yml(草案,when: manual,头部标注「请勿直接改名」);d:/cfc/tests/e2e/ 与 cfc-langgraph/tests/ 资产未挂任何自动触发;docs/tdd/ci/CI_READINESS_2026-11-05.md 明示「不宣称任何 SC 已跑通」。
③ 最优修改方案:(a) 经主理人/用户核实 CI 平台为 GitLab 且 runner 具备 JDK8(编排机实测为 JDK21,非 JDK8,不能直接推断)+ Maven + node22 + 可拉依赖网络后,将草案复制为根目录 .gitlab-ci.yml(保留 when: manual 先手动跑通);(b) 后端 job 强制 -DskipTests=false 规避 pom 假绿坑;(c) 按 DEV_GOAL_user_scenarios.md 的 G0–G4 门禁逐 SC 实跑并留痕(自动化-run-*.md + 脚本报告);(d) 提供登录凭据注入后,用现有 69 个 Playwright spec 实跑 /admin、/frontend 关键路径。
④ 修改目的:把已写资产转化为真实回归证据,闭合「218 SC 全跑通」目标,消除「假绿/假红」盲区,使覆盖矩阵可量化。
⑤ 问题闭环:CI 启用且每轮至少推进一项缺口;后端 mvn -o -DskipTests=false test GREEN、Playwright 69 spec 与 pytest 12 文件在 CI/本地实跑有报告、729 条结构化用例按 SC 逐条标注「已跑通/失败/阻塞/未跟踪」并附 sha 证据;通过标准=G0–G4 全绿且场景矩阵无红。
① 问题描述:pom 未集成 JaCoCo,无法采集行/分支覆盖率,覆盖门槛缺量化依据。
② 测试 bug 点:cfc-backend/pom.xml 无 jacoco 插件。
③ 最优修改方案:经研发确认引入 JaCoCo + 阈值门禁。
④ 修改目的:为覆盖矩阵提供量化数据,支撑门禁裁决。
⑤ 问题闭环:引入后 mvn test 产出 coverage 报告,覆盖率达阈值。
cfc-frontend/__tests__/api/api.test.js、indicator-change.test.js、docs/tdd/test/blockers.md 的归属与意图(非 SRS 提交,不触发编写闸门)。mvn -o -DskipTests=false test,优先验证新增 S-cfc-9..13 / SC-G-06 / SC-P-03 契约测试是否 GREEN,再处理 38 类漂移。授权方式:允许解压 /d/maven 并配置 PATH,或指定 Maven 路径。/admin:注入凭据登录 → 断言跳转后台首页 → 关键路径(会员/家庭/测评/文章/商城管理列表加载、新增/编辑弹窗、列表分页与搜索)。/frontend:首页加载 → 核心流程(登录态、健康报告入口、五维能量展示、家庭关系图)。data-testid/可见文本,避免依赖内部实现;失败截图归档。/api/** 阶梯加压,关注 9082 吞吐与 9000 LangGraph 解析延迟。⛔ 不通过(有条件)
mvn -o -DskipTests=false test 产出真实结果并达 BUILD SUCCESS(非通过=0);未实测项汇总:① 后端全量执行=mvn 不可用(源码已变更,04:30 实证失效);② E2E 实跑=无凭据降级;③ 覆盖率=无 JaCoCo;④ 性能/安全/压测/漏洞=需联网未授权。