# 测试方案-2026-06-23-13-38-48 ## 测试方案文档路径 `工程分析/测试方案-2026-06-23-13-38-48.md` ## 静态检查 - 执行 `npm run lint`,验证 TypeScript 类型。 - 检查 `ModelPose` 前后端字段一致。 - 检查旧位姿数据默认补齐 `scaleX/scaleY/scaleZ = 1`。 ## 构建检查 - 在 `WebSite/` 执行 `npm run build`。 - 确认 Vite 构建成功。 ## 关键业务场景验证 - 逆向工作区仍能加载默认项目、DICOM/STL 和映射视图。 - 现有等比例 `X拉伸/Y拉伸/Z拉伸` 行为保留。 - 新增单轴拉伸在旋转 X/Y/Z 为 90 度整数倍时可用。 - 单轴拉伸某轴后,对应 `平移 X/Y/Z` 自动为 `0`。 - 调整统一 `缩放` 后,模型仍保留单轴拉伸比例。 - 点击自动微调匹配时,传入的初始位姿包含单轴拉伸字段。 ## 医学影像数据相关边界验证 - 不修改 DICOM/STL 原始数据。 - 不改变 DICOM 切片索引、窗宽窗位和模型文件读取逻辑。 - 验证分割映射和导出使用同一位姿变换,避免前端显示与后端结果不一致。 ## 部署验证 - 使用 `tmux` 会话 `revoxelseg-dicom` 重启服务。 - 验证: - `http://127.0.0.1:4000/api/health` - `http://127.0.0.1:4000/` - `http://192.168.3.11:4000/api/health` - `http://192.168.3.11:4000/` ## Git/Gitea 备份验证 - 暂存本次源码和工程分析文档。 - commit message 包含 `2026-06-23-13-38-48` 和 `新增逆向工作区单轴拉伸`。 - 使用 `git show --stat --oneline HEAD` 核对提交范围。 ## 风险与回归关注点 - 三维模型、二维映射、导出和自动匹配必须使用同一变换顺序。 - 自动匹配候选只改统一缩放和平移时,必须保留单轴拉伸字段不丢失。 - 单轴拉伸控件不能挤压现有左侧融合视图标题栏。 - 旧项目状态文件缺少新字段时必须正常加载。 ## 执行结果 - `npm run lint`:通过,`tsc --noEmit` 无错误。 - `npm run build`:通过,Vite 成功生成 `dist/`;仍有大 chunk 体积提示,不影响本次部署。 - Playwright 桌面视口 `1440x900`:已登录并进入逆向工作区,点击 `X轴` 单轴拉伸按钮;页面包含 `X轴/Y轴/Z轴` 与 `轴拉伸 X` 控件;截图 `/tmp/revoxelseg-axis-stretch-desktop.png` 非背景像素约 513328。 - Playwright 移动视口 `420x900`:已登录并进入逆向工作区,点击 `X轴` 单轴拉伸按钮;页面包含单轴拉伸控件;截图 `/tmp/revoxelseg-axis-stretch-mobile.png` 非背景像素约 263176。 - Canvas 检查:桌面/移动视口的 DICOM 与映射 2D canvas 均有非空像素;WebGL canvas 截图可见,但 `readPixels` 返回 0,判断与 Three.js 默认绘图缓冲行为有关,因此以截图像素统计作为视觉验证补充。 - 部署:已重启 `tmux` 会话 `revoxelseg-dicom`,运行 `NODE_ENV=production npm run serve -- --host 0.0.0.0 --port 4000`。 - 端口:`4000` 由当前 Node 进程监听在 `0.0.0.0:4000`。 - `http://127.0.0.1:4000/api/health`:HTTP 200,返回 `ok: true`。 - `http://127.0.0.1:4000/`:HTTP 200,返回 HTML。 - `http://192.168.3.11:4000/api/health`:HTTP 200,返回 `ok: true`。 - `http://192.168.3.11:4000/`:HTTP 200,返回 HTML。 - `http://127.0.0.1:4000/api/projects`:HTTP 200,返回项目位姿已自动补齐 `scaleX/scaleY/scaleZ`,旧项目数据兼容。 - Git 备份:本地 commit `e88b40a` 已完成,commit message 为 `2026-06-23-13-38-48 新增逆向工作区单轴拉伸`。 - Gitea 推送:执行 `git push origin main` 失败,错误为无法读取 `http://192.168.31.5:5002` 的用户名凭据;本次源码与文档已保留在本地 Git 历史中。