# 测试 → 研发 阻塞台账(正式通道) > 纪律:本台账条目经测试负责人 `--mark-blocked`(或补登记)产生,**push 到远端才算送达研发**; > 解除时由测试用 `--clear-blocked` 置「已解除」。缺陷详情载体见 `test_blockers.md` 与各轮巡检报告。 | 编号 | 关联键/对象 | 类型 | 描述 | 经办 | 登记时间 | 状态 | |---|---|---|---|---|---|---| | B-1 | cfc-backend surefire 13 红 | 研发 | 后端套件产物(11-02 08:31–08:39)148 用例中 8 fail + 5 error 长期未修;1315/1491 @Test 无执行记录。需研发修复红例并补跑全量 | 测试(巡检补登记) | 2026-11-03 10:58 | 待处理 | | B-2 | R5 · admin-auth/login | 研发 | `POST /api/admin-auth/login` 未授权/空 body 返回 500(应为 401/403,异常信息泄露),安全语义缺陷。详情见 test_blockers.md R5 | 测试(巡检补登记) | 2026-11-03 10:58 | 待处理 | | B-3 | R6 · 报告上传 | 研发 | 报告上传未做 MIME/扩展名/内容校验,非 PDF 未被拒(非 4xx),恶意文件上传风险。详情见 test_blockers.md R6 | 测试(巡检补登记) | 2026-11-03 10:58 | 待处理 | | B-4 | F1/F2 · butler envelope / commission 400 | 研发 | §7.1 七条真实 unexpected 缺陷中 F1(butler envelope)、F2(commission 400)复跑确认仍未修复 | 测试(巡检补登记) | 2026-11-03 10:58 | 待处理 | | B-5 | 接口冒烟 REAL_ERR 分型 | 研发 | `interface_classify_failures.py` 分型出 49 条 REAL_ERR(基于 11-01 轮次)未派单未修复;冒烟通过率停 45%,需研发按分型认领真实错误端点 | 测试(巡检补登记) | 2026-11-03 10:58 | 待处理 | | B-6 | health.report.createReport | 研发 | TDD 状态机 RED 停滞(自 11-02 01:06 起):契约级单测已落地并**离线实跑 5 例全绿**(HealthReportControllerCreateReportTest,commit 81d8883f7 已推 origin/cfclub),实现已在库;**缺研发 `--mark-yellow` 登记**,状态机无法推进至 GREEN。更新:2026-11-04 15:20 测试侧复核实跑 | 测试(巡检更新) | 2026-11-03 10:58 | 待处理 | | B-7 | dan.assessment.getActiveMaterial | 研发 | TDD 状态机 RED 停滞(自 11-02 01:06 起):契约级单测已落地并**离线实跑 3 例全绿**(DanAssessmentControllerGetActiveMaterialTest,commit faf3ca174 已推 origin/cfclub),实现已在库;**缺研发 `--mark-yellow` 登记**,状态机无法推进至 GREEN。更新:2026-11-04 15:20 测试侧复核实跑 | 测试(巡检更新) | 2026-11-03 10:58 | 待处理 | | B-8 | CfBalanceControllerTest(P0 编译回归) | 研发 | commit dfc78e9d3(2026-11-03 23:27)给 `CfBalanceController.balance`/`logs` 新增 `currentMemberId` 参数,但 `CfBalanceControllerTest.java`(76230e2f4,2026-10-25)未同步 → 7 处编译错误(行 95/113/121/140 调 balance、169/189/202 调 logs),整模块 testCompile 失败,1474 @Test 零执行。需研发补改测试 7 处调用或回退签名 | 测试(巡检补登记) | 2026-11-04 03:49 | 已解除 → 44b2f0d42(2026-11-05 00:31)重写控制器移除 currentMemberId 再次触发同源编译回归,详见 B-10(待处理) | | B-9 | guide.trainingPlan.getPlanDetail(鉴权缺口观察) | 研发 | `POST /api/guide/training-plans/detail` handler 在控制器层不读取 `@RequestAttribute("role")`,亦未列入 JwtInterceptor `LOGIN_REQUIRED_PATHS`,「规划师角色约束」名义成立但任何已认证角色(乃至匿名 userId=-1)均可到达 handler,属潜在越权缺口(同文件 `getPlanList` 同类观察,TR-1 第 6 点要求测试侧记录)。契约测试已落地(TrainingPlanControllerGetPlanDetailTest,8 例全绿),本条仅作缺陷观察回写,不阻断 RED→YELLOW→GREEN 推进 | 测试负责人(应 TR-1 登记) | 2026-11-04 10:10 | 待处理 | | B-10 | CfBalanceControllerTest(P0 编译回归·复发) | 研发 | commit `44b2f0d42`(2026-11-05 00:31:53,「chore(sync): 工作区遗留未提交 WIP 收尾同步」)重写 `CfBalanceController.balance` 为 `balance(@RequestAttribute("userId") Long userId)`、`logs` 为 `logs(userId, page, size)`,删除 `currentMemberId` 参数及 `stats`/`familySummary` 方法;但测试 `CfBalanceControllerTest`(仍停在 `c9f9ec948`,曾为修复上轮 P0 给测试**加上** `currentMemberId` 实参)未同步 → 仍调 `balance(7L, null)` / `logs(7L, null, 1, 20)`,实参个数不符 → testCompile 失败,1474 @Test 零执行。需研发改测试 7 处调用去掉 `currentMemberId` 实参(或回退 44b2f0d42 改写)。本轮(01:05)复跑复现,日志 `/d/cfc/.tdd/backend-run-20261105-0105.log`。**升级(01:36 复跑确认)**:测试文件已被 `44b2f0d42` 迁移至 `cfc-backend/src/test/java/com/etotem/cfc/unit/CfBalanceControllerTest.java`,仍以旧签名调用 → **7 处编译错误**(行 95/113/121/140 调 `balance(7L,null)`、169/189/202 调 `logs(7L,null,1,20)`,控制器现为 `balance(userId)` 单参 / `logs(userId,page,size)` 三参)→ `mvn -o -B -f cfc-backend/pom.xml -DskipTests=false -Dtest='HealthReportControllerCreateReportTest,DanAssessmentControllerGetActiveMaterialTest,TrainingPlanControllerGetPlanDetailTest' test` @ testCompile **BUILD FAILURE**;**全模块 1474 @Test + 16 契约测试(历史 8 轮全绿)全部零执行**,4 个 YELLOW 键(createReport/getActiveMaterial/getTree/mapLegacyCode)复验收口亦被连带阻断。**优先级 P0(阻断全模块测试验证)**。建议研发:改测试 7 处调用(`balance(7L)` / `logs(7L,1,20)`)或回退 44b2f0d42 | 测试(01:36 复跑确认补登记) | 2026-11-05 01:36 | **已解除(03:30 复验确认)**:研发负责人1 正式修复 `37f29a5df`(2026-11-05 02:30,移除 7 处多余 null 实参与 `balance(userId)`/`logs(userId,page,size)` 对齐)已推 origin/cfclub 且 `merge-base --is-ancestor` 核验通过;测试侧 03:30 在远端基线复跑:**testCompile 205 源 0 错**、16 契约测试(createReport 5 + getActiveMaterial 3 + getPlanDetail 8)**16/16 全绿**、CfBalanceControllerTest 8/8 绿(含在全量 204 类/1528 例 91.88% 基线,02:50 批次全量实跑)。复验通道恢复,2 个 YELLOW 键(getActiveMaterial/createReport)测试复验通过 | | B-11 | `/api/cf` 三端点删除(待确认意图) | 研发 | `44b2f0d42`(11-05 00:31,`chore(sync)` 工作区 WIP 收尾)删除 `/api/cf/stats`、`/api/cf/family-summary`、`/api/cf/promotion-earnings` 及前端 3 个封装(-210 行)。**全套 1528 例零转红**,即删除行为无任何用例可证伪。该提交标题为"遗留 WIP 收尾同步",具备误覆盖特征。需研发确认:有意精简 / 误覆盖 → 前者补 `API_REFERENCE.md` 下线记录,后者 revert 并补 3 端点用例 | 测试(36 轮巡检登记) | 2026-11-05 02:48 | 待处理 | | B-12 | 3 类 20 个 `@Test` 长期 `@Disabled` | 研发/测试 | `DataMigrationServiceTest`(11,依赖 sfms 数据源)、`TaskServiceMinigameTest`(5,依赖硬编码 userId=1L)、`TeacherLoginTest`(4,依赖硬编码手机号,测试间数据污染) 均类级 `@Disabled`;台账 @Test 1545 与实际执行 1528 差 17 例。根因统一为测试数据夹具缺失。需建 seed 脚本/`@Sql` 夹具后解禁。**口径精确化(37 轮)**:注解 1545 − 20(3 类 @Disabled 内注解)+ 3(surefire 为每个禁用类仍记 1 条 skipped 占位)= 1528,误差 0;已逐类排除「参数化展开」假设(全仓参数化类 注解数=执行数)。 | 测试(36 轮登记/37 轮精确化) | 2026-11-05 02:48 | 待处理 | | B-13 | 3 个 @SpringBootTest 类硬编码 127.0.0.1:3306(环境红根因) | 研发/环境 | `AdminFamilyOverviewControllerTest.java:21-22`、`service/FamilyAdminOverviewServiceTest`、`service/UserServiceFamilyNameLinkTest` 三处 `@SpringBootTest(properties={"spring.datasource.url=jdbc:mysql://127.0.0.1:3306/zxyj…"})` 硬编码本机 MySQL;本机无 MySQL → `Connection refused` → `Failed to load ApplicationContext`,**8 例每轮必红**(37 轮实测异常链:BeanCreationException → primaryDataSource → HikariPool$PoolInitializationException → CommunicationsException → ConnectException)。全仓 `grep -rl 127.0.0.1:3306 src/test` 命中恰好这 3 类。**非池压力**(37 轮 `Too many connections` 出现 0 次)。建议:改 `@ActiveProfiles("test")` + `src/test/resources/application-test.yml` 统一指向 192.168.16.251 测试库(池上限 4)。 | 测试(37 轮巡检登记) | 2026-11-05 05:30 | 待处理 |