2026-08-08 15:25:46 +08:00
|
|
|
|
# 后端全量回归
|
|
|
|
|
|
|
|
|
|
|
|
## 入口
|
|
|
|
|
|
|
|
|
|
|
|
在 `baiyue-firstleg` 根目录执行:
|
|
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
|
.\scripts\backend-full-regression.ps1
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 前端全量回归
|
|
|
|
|
|
|
|
|
|
|
|
`frontend-full-regression.ps1` 只编排本地 Admin/Client 的 `pnpm test` 与 `pnpm typecheck`,不调用 Gateway、不部署、不连接数据库。
|
|
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
|
.\scripts\frontend-full-regression.ps1 -DryRun
|
|
|
|
|
|
.\scripts\frontend-full-regression.ps1
|
|
|
|
|
|
.\scripts\frontend-full-regression.ps1 -SkipAdmin
|
|
|
|
|
|
.\scripts\frontend-full-regression.ps1 -SkipClient
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
脚本会检查 `pnpm` 和目标应用的 `package.json`;任一命令失败时立即透传退出码,不能同时跳过 Admin 和 Client。
|
|
|
|
|
|
|
|
|
|
|
|
脚本固定运行:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
2026-08-13 14:03:54 +08:00
|
|
|
|
mvn -f <仓库根>/pom.xml -pl order,firstleg,iam,gateway,file,warehouse -am test
|
2026-08-08 15:25:46 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-08-13 14:03:54 +08:00
|
|
|
|
这会先构建公共依赖,再运行 `order`、`firstleg`、`iam`、`gateway`、`file` 与 `warehouse` 的全部 Maven 测试。覆盖包括:
|
2026-08-08 15:25:46 +08:00
|
|
|
|
|
|
|
|
|
|
- 三期 Ocean Booking Controller/Service/Mapper/SQL 契约;
|
|
|
|
|
|
- 三期 Truck Appointment Controller/Service/Mapper 契约、状态机、乐观锁和幂等操作;
|
|
|
|
|
|
- 二期 `WAIT_SPLIT` 的 firstleg 查询、order 统一查询及筛选语义;
|
2026-08-13 14:03:54 +08:00
|
|
|
|
- Warehouse 海外仓阶梯费用 SQL 与 Controller 权限合同;
|
2026-08-08 15:25:46 +08:00
|
|
|
|
- 拣货/预装/装柜模型映射与既有 Smart Loading/Split 契约。
|
|
|
|
|
|
|
|
|
|
|
|
## Dry-run
|
|
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
|
.\scripts\backend-full-regression.ps1 -DryRun
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Dry-run 只检查根 `pom.xml` 和关键回归测试文件并打印 Maven 命令,不启动 Java 服务,不请求 Gateway,不连接或写入任何数据库。
|
|
|
|
|
|
|
|
|
|
|
|
## 现有相关脚本与边界
|
|
|
|
|
|
|
2026-08-11 18:06:26 +08:00
|
|
|
|
### 数据库中文注释审计
|
|
|
|
|
|
|
|
|
|
|
|
`database-comment-audit.ps1` 离线扫描各模块 `src/main/resources/db/*.sql` 中的 `CREATE TABLE` 定义,不连接数据库、不执行 SQL,也不修改任何文件。
|
|
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
|
.\scripts\database-comment-audit.ps1
|
|
|
|
|
|
.\scripts\database-comment-audit.ps1 -Modules finance,order
|
|
|
|
|
|
.\scripts\database-comment-audit.ps1 -Modules finance -SummaryOnly
|
|
|
|
|
|
.\scripts\database-comment-audit.ps1 -Format Json
|
|
|
|
|
|
.\scripts\database-comment-audit.ps1 -FailOnIssues
|
|
|
|
|
|
.\scripts\database-comment-audit.ps1 -SelfTest
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
默认报告模式即使存在存量缺口也返回 `0`;CI 使用 `-FailOnIssues`,缺失或纯英文表/字段注释返回 `1`,模块或路径配置错误返回 `2`。规范和注释口径见 `../docs/数据库注释维护规范.md`。
|
|
|
|
|
|
|
2026-08-08 15:25:46 +08:00
|
|
|
|
### 本地 MySQL 全量验收
|
|
|
|
|
|
|
2026-08-13 14:03:54 +08:00
|
|
|
|
正式入口是 `local-db-full-acceptance.ps1`,只允许连接本机 `127.0.0.1` 或 `localhost`,默认端口 `3306`;测试库 `8.163.30.128` 会立即以退出码 2 拒绝。脚本固定校验统一 SQL SHA-256 `BE7C5C98712D5202F5D187EA9A37C64EAB9F6AA9AE772C89A51F186507B1AE53` 和 14706 行,并静态确认中文注释升级采用校验入队、每表一次 ALTER、结构签名复核、九库覆盖断言及唯一最终 `PASS`。
|
2026-08-08 15:25:46 +08:00
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
|
.\local-db-full-acceptance.ps1 -DryRun
|
|
|
|
|
|
.\local-db-full-acceptance.ps1
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Dry-run 只校验 SQL 输入并打印空库、复跑、两类 picking 旧结构、WAIT_SPLIT/IAM、海外仓旧结构、中断恢复和最终结构的执行顺序,不启动 MySQL、不写库。真实运行每阶段写入 `.codex-tmp/p23-04-acceptance/acceptance-run-*.log`,不使用 `--force`,任一 SQL 错误立即停止并透传退出码,最后执行 `verify-final.sql`。脚本不保存或传入数据库密码,使用本机默认认证环境。
|
|
|
|
|
|
|
|
|
|
|
|
仓库中 `phase2-test-env-acceptance.ps1`、`admin-test-env-acceptance.mjs`、`client-test-env-acceptance.mjs`、`export-center-test-env-acceptance.ps1` 等属于测试环境/API 验收脚本;它们可能读取或写入测试环境数据,不由本入口调用。`migrate-local-qualification-file.ps1`、`local-env.ps1` 等是环境/迁移辅助脚本,也不由本入口调用。
|
|
|
|
|
|
|
|
|
|
|
|
本入口不读取数据库凭据、不执行 MySQL、HTTP、迁移、DDL、INSERT/UPDATE/DELETE,也不启动 Nacos、Gateway 或业务服务。需要数据库矩阵时必须单独运行受控验收流程。
|
|
|
|
|
|
|
|
|
|
|
|
## 退出码
|
|
|
|
|
|
|
|
|
|
|
|
- `0`:dry-run 检查通过或 Maven 全量测试通过;
|
|
|
|
|
|
- `2`:仓库根 pom 或关键测试文件缺失,脚本未启动 Maven;
|
|
|
|
|
|
- 其他非零值:原样透传 Maven 失败退出码。
|
|
|
|
|
|
|
|
|
|
|
|
脚本不设置 `MAVEN_OPTS`、数据库 URL 或测试账号;环境参数仅为可选的 `$MavenCommand`(默认 `mvn`),用于指定本机 Maven 可执行文件。
|