From ebf3a3994cbdebb2f800f33c6dab7bca83dab71d Mon Sep 17 00:00:00 2001 From: zichun Date: Mon, 1 Jun 2026 15:57:58 +0800 Subject: [PATCH] chore(usr): record test-gate attempt r1 GREEN evidence (JDK17 toolchain, 125 tests pass) --- docs/superpowers/module-reports/usr-test-gate-r1.md | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+), 0 deletions(-) create mode 100644 docs/superpowers/module-reports/usr-test-gate-r1.md diff --git a/docs/superpowers/module-reports/usr-test-gate-r1.md b/docs/superpowers/module-reports/usr-test-gate-r1.md new file mode 100644 index 0000000..f75dc72 --- /dev/null +++ b/docs/superpowers/module-reports/usr-test-gate-r1.md @@ -0,0 +1,53 @@ +# 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`(含 `JwtUtil` mock)本次 **9/9 全绿**,证明 Byte Buddy×JDK25 根因已消除。 +- 各 IT(`UsrLoginIT` 12、`UsrUserQueryIT` 13、`UsrUserUpdateIT` 6、`UsrUserCreateIT` 5、`AuthLoginConfigIT` 1)全部通过。 + +## 结论 + +usr 模块硬测试闸 r1 = **GREEN**。无 flake(本次为修复后首跑即绿;历史 RED 证据已随旧工具链一并移除,非本轮 attempt 序列)。报告阶段前置(末次 attempt green)已满足。 -- libgit2 0.22.2