Files
a-share-analysis/docs/features/GOV-009-application-scaffold-baseline/qa/test-results.md
T

4.5 KiB
Raw Blame History

测试结果

  • 日期:2026-08-13
  • 实现提交:95b8611bd9bbc282193591e472e2e19c617e5035
  • 状态:passed

测试先行证据

  • 三进程配置 Token 缺失、Scheduler/Worker 启动后自行退出:RED;动态模块注入和生命周期锚点实现后 GREEN。
  • 消息信封缺少追溯字段、MySQL 接受 5.7.41、真实空库 dump 被误判:RED;完整信封、5.7.42 固定和对象计数判空后 GREEN。
  • .vue 越界导入未被发现、Vite 无 /api 代理:RED;SFC 脚本扫描和同源代理后 GREEN。
  • 契约漂移验证模块不存在:RED;生成后限定路径 Git diff 与 Git 跟踪门禁后 3/3 GREEN。
  • Vue 外部 script src、可变镜像标签和干净 checkout 生命周期用例依次 RED;禁止外部脚本、摘要校验与公开生产 fixture 实现后 GREEN。
  • Playwright 访问真实健康接口时代理连接拒绝:RED;同时启动测试 API 并复用可用本机 Redis 后 GREEN。

完整验证

pnpm verify:passed。

  • 运行时:Node.js 22.11.0、pnpm 10.25.0。
  • 治理:5/5。
  • MySQL 架构规范:2/2。
  • 环境与部署契约:11/11。
  • Schema 基线:28/28;v0.0.7 (not_applicable) 验证通过。
  • 生成契约漂移:3/3;OpenAPI 与 Web 生成类型同步,未跟踪生成物会阻断。
  • 工程边界:8/8,包含 Vue SFC 内联脚本,以及外部脚本单双引号、无引号和属性换序越界用例。
  • 生产镜像引用:5/5;拒绝空值、latest、普通 tag 和裸摘要。
  • Web Vitest:8/8。
  • Server Vitest:30/30,包含 API/Scheduler/Worker 与两个真实子进程生命周期用例。
  • Web、API、Scheduler、Worker 生产构建:passed。
  • Playwright:桌面/移动共 4/4;页面外壳与 Web → Vite → Nest API 健康链路均通过。
  • git diff --check、ESLint、Prettier、TypeScript:passed。

pnpm verify:docker:passed。

该结果是 2026-08-13 已完成的历史交付验证。按用户随后决定,Docker 不再作为日常开发必跑项;核心功能完成后再决定是否保留 Docker 部署,并仅在最终交付阶段按需重跑。

  • Web 与 Server 多阶段镜像真实构建成功。
  • Server 镜像以 node 非 root 用户运行。
  • API、Scheduler、Worker 三个镜像入口存在;Scheduler/Worker 均在容器内持续运行,并在 SIGTERM 后退出码为 0。
  • 隔离容器内 Redis/API/Web 启动,API 健康 200、Web 首页和 Nginx /api 代理通过。
  • 临时容器、网络和验证镜像已清理。

本机与固定开发基础设施

  • 本机 Redis 127.0.0.1:6379 的 DB 0、1、2 分别执行只读 PING,三次均返回 PONG;未读取或修改业务键。
  • 固定开发 MySQL 只读会话返回 5.7.42-0ubuntu0.18.04.1、库 a_share_analysis_dev、utf8mb4、utf8mb4_general_ci、会话时区 +08:00;Task 1 对象计数为 0。密码只通过临时进程环境传递,未输出或写入命令参数;未连接、探测或读取生产数据库。
  • 本机 RocketMQ 只读 TCP 可达性复核:NameServer 127.0.0.1:9876、Broker 127.0.0.1:10911、Proxy 127.0.0.1:8081 均可达。Node Adapter 仍保持禁用,没有创建 Topic、消费或发送消息。

仅源码部署调整(2026-08-13)

RED

  • pnpm test:deployment 因 verify-source-deployment.mjs 尚不存在而失败,证明新测试先于源码发布门禁实现。
  • pnpm test:environment-baseline 因 Docker 活动文件和本地 Compose 指令仍存在而失败,证明政策测试能捕获待移除能力。
  • node --test server/tools/run-test-api.test.mjs 因 checkLocalRedis 尚未导出而失败,证明外部 Redis 预检行为先有测试。

GREEN

  • 源码部署夹具:5/5;覆盖完整发布、Docker 活动文件、Worker 产物缺失、systemd root 用户和 Nginx 错误配置。
  • 环境与部署契约:10/10;活动 Docker 入口不存在,本地外部 Redis和唯一 Ubuntu 源码部署规则通过。
  • Redis 预检:2/2;OS 分配的本机 TCP 端口分别验证可达和不可达,不安装或启动外部服务。
  • 本机 redis-cli -h 127.0.0.1 -p 6379 ping 返回 PONG。
  • Server 原有 30 项 Vitest 与新增 2 项 Node 测试全部通过。
  • Playwright 桌面与移动视口共 4/4,通过真实本机 Redis、API 健康接口和 Web 同源代理链路。

前述 pnpm verify:docker 及镜像验证内容是调整前的真实历史证据。2026-08-13 用户确认仅源码部署后,这些能力已被取代并从活动仓库删除,不再执行或作为发布依据。