usr-test-gate-r1.md
3.22 KB
usr 模块硬测试闸 —— attempt r1(GREEN)
- 模块: usr(用户/认证)
- 阶段: backend test-gate(合并默认分支前的硬测试闸)
- attempt: r1
- 判定: ✅ GREEN
- 执行时间: 2026-06-01 15:56–15:57 CST
-
执行命令:
node scripts/test.mjs(内部ensureJava17()固定 JDK17 后逐级执行 setup-db → build → lint → unit+integration → e2e) -
功能分支 HEAD:
282a524(chore(usr): 移除 JDK25 工具链导致的过期红色 test-gate 证据 r1-r5)
背景:根因与修复
历史上 usr 模块在 JDK25 默认工具链下连续 5 次 RED(旧 r1–r5 证据),根因为:
- Maven Surefire fork 出的测试 JVM 沿用开发机默认 JDK(Java 25,class file 版本 69)。
- Mockito 自带的 Byte Buddy 不支持过新的 class file 版本(仅到 Java 22 = 66),导致
UsrAuthServiceImplTest.setUp阶段对com.xly.erp.common.security.JwtUtil整片Mockito cannot mock this class报 error。 - 旧 r5 终态:
Tests run: 88, Failures: 0, Errors: 9, Skipped: 0(9 个 error 全部来自 Mockito mock 失败)。
修复(已在功能分支落地):
-
dbc3454 chore(infra): test.mjs 固定后端测试 JDK 为 Java 17——scripts/test.mjs新增ensureJava17(),在跑后端 Maven 前把进程树JAVA_HOME/PATH固定到 Java 17 运行时(不改全局 profile)。 -
282a524 chore(usr): 移除 JDK25 工具链导致的过期红色 test-gate 证据 r1-r5—— 移除过期红色证据,避免污染报告前置判定。
本次 r1 是修复落地后在 JDK17 工具链下的首次重跑。
工具链确认
-
/usr/libexec/java_home -v 17→/opt/homebrew/Cellar/openjdk@17/17.0.19/libexec/openjdk.jdk/Contents/Home -
ensureJava17()日志:[test.mjs] 固定 JAVA_HOME=Java 17 → /opt/homebrew/Cellar/openjdk@17/17.0.19/libexec/openjdk.jdk/Contents/Home - Spring Boot 测试启动日志确认运行时:
Starting ErpApplicationTests using Java 17.0.19 - Maven:Apache Maven 3.9.15 / Java version 17.0.19
5 级闸门执行结果
| 阶段 | 命令 | 结果 |
|---|---|---|
| 1/5 setup test db |
node scripts/setup-test-db.mjs(DROP+CREATE xlyweberp_vibe_erp_test,schema 由 Flyway 启动时 apply) |
✅ done |
| 2/5 build | mvn -q -B -DskipTests package |
✅ pass |
| 3/5 lint | mvn -q -B checkstyle:check |
✅ pass |
| 4/5 unit + integration | mvn -q -B test |
✅ pass |
| 5/5 e2e | 后端无 e2e(前端阶段单独执行) | ✅ skip(按 docs/04 §零约定) |
退出码:0;test.mjs 终态输出:[test.mjs] GREEN。
测试统计(surefire-reports 汇总)
-
总计:
Tests run: 125, Failures: 0, Errors: 0, Skipped: 0(25 个测试类)。 - 关键回归:曾整片报错的
UsrAuthServiceImplTest(含JwtUtilmock)本次 9/9 全绿,证明 Byte Buddy×JDK25 根因已消除。 - 各 IT(
UsrLoginIT12、UsrUserQueryIT13、UsrUserUpdateIT6、UsrUserCreateIT5、AuthLoginConfigIT1)全部通过。
结论
usr 模块硬测试闸 r1 = GREEN。无 flake(本次为修复后首跑即绿;历史 RED 证据已随旧工具链一并移除,非本轮 attempt 序列)。报告阶段前置(末次 attempt green)已满足。