5.9 KiB
5.9 KiB
第 1 步测试结果:本地静态与自动化基线
执行时间:2026-06-28 18:44:25 +08:00
执行范围:
- ESLint 静态检查
- TypeScript 项目引用类型检查
- 全量 Vitest
- Monorepo 构建
- Prisma schema 校验
1. 结果总览
| 检查项 | 命令 | 结果 |
|---|---|---|
| Lint | corepack pnpm@10.33.0 lint |
通过 |
| Typecheck | corepack pnpm@10.33.0 typecheck |
通过 |
| Test | corepack pnpm@10.33.0 test |
未通过 |
| Build | corepack pnpm@10.33.0 build |
通过 |
| Prisma validate | corepack pnpm@10.33.0 prisma:validate |
通过 |
整体结论:首次执行第 1 步基线未完全通过,阻断项为全量 Vitest 中 7 个 API e2e suite 的 beforeAll hook 默认 10 秒超时。其余静态检查、类型检查、构建和 Prisma schema 校验均通过。
复测结论:已在 vitest.config.ts 显式设置 hookTimeout: 60000,随后重新执行裸 corepack pnpm@10.33.0 test,25 个测试文件、88 个测试用例全部通过。该结果说明首次失败是全 AppModule e2e 初始化超过默认 hook timeout 导致,不是业务断言失败。
2. 详细结果
2.1 Lint
命令:
corepack pnpm@10.33.0 lint
结果:通过。
摘要:
- 执行
eslint .。 - 未发现 ESLint 报错。
2.2 Typecheck
命令:
corepack pnpm@10.33.0 typecheck
结果:通过。
摘要:
- 执行
tsc -b tsconfig.build.json --pretty。 - TypeScript 项目引用检查通过。
2.3 Test
命令:
corepack pnpm@10.33.0 test
结果:未通过。
Vitest 汇总:
- Test Files:7 failed,18 passed,共 25。
- Tests:68 passed,20 skipped,共 88。
- Duration:45.57s。
失败原因:
7 个 API e2e suite 在 beforeAll 阶段触发默认 10000ms hook timeout:
| 失败文件 | 失败位置 | 摘要 |
|---|---|---|
apps/api/src/app.e2e.spec.ts |
beforeAll line 10 |
API health e2e 初始化超时 |
apps/api/src/modules/auth/auth.e2e.spec.ts |
beforeAll line 85 |
Auth API e2e 初始化超时 |
apps/api/src/modules/customers/customers.e2e.spec.ts |
beforeAll line 161 |
Customers API e2e 初始化超时 |
apps/api/src/modules/landing-line-groups/landing-line-groups.e2e.spec.ts |
beforeAll line 228 |
Landing line groups API e2e 初始化超时 |
apps/api/src/modules/recharges/recharges.e2e.spec.ts |
beforeAll line 124 |
Recharges API e2e 初始化超时 |
apps/api/src/modules/security/security-rbac-audit.e2e.spec.ts |
beforeAll line 172 |
Security/RBAC/Audit API e2e 初始化超时 |
apps/api/src/modules/vendor-gateways/vendor-gateways.e2e.spec.ts |
beforeAll line 184 |
Vendor gateways API e2e 初始化超时 |
已通过的测试文件包括:
apps/api/src/modules/active-calls/active-calls.service.spec.tsapps/api/src/modules/auth/auth.service.spec.tsapps/worker-recording/src/transfer.spec.tspackages/auth/src/index.spec.tsapps/api/src/modules/customer-gateway-policies/customer-gateway-policies.e2e.spec.tsapps/api/src/modules/customer-gateways/customer-gateways.e2e.spec.tsapps/api/src/modules/vendors/vendors.e2e.spec.tsapps/api/src/modules/users-roles-delete.e2e.spec.tsapps/api/src/modules/number-library/number-library.e2e.spec.tsapps/worker-cdr/src/rating.spec.tspackages/database/src/schema-contract.spec.tsapps/api/src/modules/dashboard/dashboard.service.spec.tspackages/redis/src/cdr-stream.spec.tsapps/api/src/modules/cdrs/cdrs.service.spec.tsapps/worker-config-publisher/src/publisher.spec.tsapps/api/src/modules/recordings/recordings.service.spec.tsapps/api/src/modules/quality/sampling.spec.tsapps/api/src/modules/health/health.service.spec.ts
初步判断:
- 失败集中在 API e2e
beforeAll初始化阶段,错误均为默认 10 秒 hook timeout。 - 结合历史执行记录,本项目 e2e 曾使用
--hookTimeout=60000 --maxWorkers=1通过;本次按第 1 步基线命令执行裸pnpm test,因此更可能是本地 e2e 初始化耗时或并发资源争用导致的基线命令超时,而不是业务断言失败。 - 仍需在下一轮复测中用扩展 hook timeout 和单 worker 复跑,确认是否存在真实数据库/Redis/API 初始化问题。
2.4 Build
命令:
corepack pnpm@10.33.0 build
结果:通过。
摘要:
packages/auth、packages/contracts、packages/database、packages/domain、packages/observability、packages/redis构建通过。apps/api、apps/worker-cdr、apps/worker-config-publisher、apps/worker-recording构建通过。apps/webVite 构建通过,生成产物:dist/index.htmldist/assets/index-B2uYBtS3.cssdist/assets/index-BK00zN_M.js
2.5 Prisma Validate
命令:
corepack pnpm@10.33.0 prisma:validate
结果:通过。
摘要:
- Prisma config:
prisma.config.ts。 - Schema:
prisma/schema.prisma。 - 结果:schema valid。
3. 当前风险
- 首次
pnpm test失败集中在 e2e 初始化超时,不应直接按业务缺陷处理。 - 已通过配置层修复验证:
vitest.config.ts增加hookTimeout: 60000后,pnpm test通过。 - 若后续在低性能 CI 或数据库连接较慢环境中再次出现初始化超时,可再考虑降低 e2e 并发,例如使用
--maxWorkers=1。
4. 复测记录
执行时间:2026-06-28 18:53:16 +08:00
变更:
// vitest.config.ts
hookTimeout: 60000
复测命令:
corepack pnpm@10.33.0 test
复测结果:
- Test Files:25 passed,共 25。
- Tests:88 passed,共 88。
- Duration:12.56s。
5. 建议下一步
- 保留
vitest.config.ts中的hookTimeout: 60000。 - 如要继续第 1 步完整闭环,可再次执行
lint、typecheck、test、build、prisma:validate全套命令并更新最终状态。 - 进入第 2 步定向单元/API e2e 回归时,可直接使用当前 Vitest 配置。