# 测试方案-2026-05-20-02-32-47 ## 测试方案文档路径 `工程分析/测试方案-2026-05-20-02-32-47.md` ## 静态检查 - 在 `WebSite/` 下执行 `npm run lint`。 ## 构建检查 - 在 `WebSite/` 下执行 `npm run build`。 ## 关键业务场景验证 - 顶部“导出全部 NII.GZ”选择多个内容后只触发一个压缩包下载。 - 选中分割影像时,菜单显示“导出可见类别/导出所有类别”选项。 - bundle 中包含所选 DICOM NIfTI、分割 NIfTI、位姿 JSON。 - 若包含分割影像,bundle 中同时包含 `segmentation-labels.json`。 - 类别 JSON 中 label/partId/name/fileName/color/opacity/visible 与项目构件层级一致。 ## 医学影像数据相关边界验证 - DICOM NIfTI 仍为真实 DICOM 体数据同维同距。 - 分割 NIfTI 仍使用当前模型位姿。 - visible scope 下隐藏构件不进入分割图和类别 JSON。 - all scope 下隐藏构件仍进入分割图和类别 JSON。 ## 部署验证 - 重启 `tmux` 会话 `revoxelseg-dicom`。 - 验证: - `curl http://127.0.0.1:4000/api/health` - `curl -I http://127.0.0.1:4000/` ## Git/Gitea 备份验证 - 显式暂存本次相关代码和文档。 - 创建包含时间戳和描述的 commit。 - 推送到 Gitea `origin/main`。 ## 实测结果 - `npm run lint`:通过。 - `npm run build`:通过;仅保留 Vite chunk size 提醒。 - 临时服务 `127.0.0.1:4100` 验证 `targets=segmentation,pose&segmentationScope=visible`:HTTP 200,返回 `.tar.gz`。 - visible bundle 包内包含: - `head-ct-demo-segmentation-label.nii.gz` - `head-ct-demo-segmentation-labels.json` - `head-ct-demo-pose-data.json` - `segmentation-labels.json` 验证包含 `segmentationScope=visible`、`label/partId/name/categoryName/className/fileName/color/opacity/visible` 字段。 - 临时服务验证 `targets=dicom,segmentation,pose&segmentationScope=all`:HTTP 200,返回约 75.90 MB `.tar.gz`。 - all bundle 包内包含 DICOM NIfTI、分割 NIfTI、分割 labels JSON、位姿 JSON。 - all labels JSON 验证包含隐藏构件,隐藏项 `visible=false` 仍保留。 - bundle 内分割 NIfTI 头验证:`512x512x300`,datatype `2`,bitpix `8`,最大标签 `9`。 ## 风险与回归关注点 - 避免重新引入 `URL.createObjectURL(blob)` 下载。 - 避免提交历史工程文档删除状态。 - 大体数据打包接口要捕获异常并返回明确错误。