3.5 KiB
3.5 KiB
测试方案
时间戳:2026-05-04-03-50-07
测试目标
验证概况统计、图表、真实 DICOM 预览、真实 STL 渲染、分割结果视图、项目创建/重命名、README 和部署均正常。
静态检查
- 检查
Overview.tsx图表容器是否有稳定尺寸。 - 检查
ProjectLibrary.tsx是否包含三个 tab:DICOM 影像、3D 模型、分割结果。 - 检查 STL 模块列表不再对首个模块默认蓝色高亮。
- 检查 README 是否包含项目构建和运行方案。
构建与类型检查
cd WebSite
npm run lint
npm run build
预期结果:
- TypeScript 检查通过。
- Vite 构建通过。
API 验证
curl -s http://127.0.0.1:4000/api/overview
curl -s 'http://127.0.0.1:4000/api/projects/head-ct-demo/dicom-preview?slice=0'
curl -I 'http://127.0.0.1:4000/api/projects/head-ct-demo/models/会厌.stl'
curl -s -X POST http://127.0.0.1:4000/api/projects -H 'Content-Type: application/json' -d '{"name":"测试创建项目"}'
curl -s -X PATCH http://127.0.0.1:4000/api/projects/head-ct-demo -H 'Content-Type: application/json' -d '{"name":"头部 CT 模型逆向体素化演示"}'
预期结果:
- overview 返回平稳趋势和
exportedMaskProjects。 - DICOM preview 返回
width、height、pixels。 - STL 文件返回 200。
- 创建项目返回新项目。
- 重命名项目成功。
页面验证
- 总体概况不再显示“已处理项目总数 = 1”的误导文案。
- 控制台不再出现 Recharts 宽高 -1 警告。
- 项目库 DICOM 影像显示真实灰度切片。
- 项目库 3D 模型显示真实 STL。
- 项目库新增分割结果页,可下载 NII/NII.GZ。
- 项目列表可创建项目。
- 项目列表已有项目可点击编辑图标重命名。
- STL 模块列表所有项目同等样式,没有“会厌”特殊蓝色突出。
回归风险
- DICOM 解析兼容性有限,当前先针对本项目 Little Endian CT 数据。
- STL 文件较大时首次加载可能需要等待。
- 新建项目默认无 DICOM/STL 数据,作为项目管理演示项。
人工审核状态
本次用户明确要求无需人工二次确认。
状态:自动确认,继续执行。
执行结果
npm run lint执行成功。npm run build执行成功。- Vite 仍有大 chunk 警告,当前不影响本次功能。
GET /api/overview返回:totalProjects: 1exportedMaskProjects: 0dicomCount: 300modelCount: 9
- 已将“已处理项目”语义改为“已导出 Mask 项目”,避免项目总数为 1 时误导为已处理 1。
GET /api/projects/head-ct-demo/dicom-preview?slice=0返回:width: 512height: 512total: 300fileName: 1.dcmpixelsbase64 数据。
GET /api/projects/head-ct-demo/models/会厌.stl返回HTTP/1.1 200 OK。POST /api/projects创建项目成功。PATCH /api/projects/:id重命名项目成功。POST /api/demo/reset执行成功,测试创建项目已清理,默认项目恢复。- headless Chrome 打开页面后未捕获
width(-1)、height(-1)或 Recharts 相关警告。 http://192.168.3.11:4000/返回HTTP/1.1 200 OK。- 当前服务由
tmux会话revoxelseg-dicom托管。
本次未创建 Python/conda 环境原因
本次 DICOM 预览、STL 渲染和 NIfTI 演示导出均可由现有 Node/React/Three.js 技术栈完成。为了避免引入不必要的运行环境复杂度,本次不创建 conda 环境;README 已说明后续真实体素化算法阶段再引入 Python/conda。