98 lines
3.5 KiB
Markdown
98 lines
3.5 KiB
Markdown
# 测试方案
|
||
|
||
时间戳:2026-05-04-03-50-07
|
||
|
||
## 测试目标
|
||
|
||
验证概况统计、图表、真实 DICOM 预览、真实 STL 渲染、分割结果视图、项目创建/重命名、README 和部署均正常。
|
||
|
||
## 静态检查
|
||
|
||
- 检查 `Overview.tsx` 图表容器是否有稳定尺寸。
|
||
- 检查 `ProjectLibrary.tsx` 是否包含三个 tab:`DICOM 影像`、`3D 模型`、`分割结果`。
|
||
- 检查 STL 模块列表不再对首个模块默认蓝色高亮。
|
||
- 检查 README 是否包含项目构建和运行方案。
|
||
|
||
## 构建与类型检查
|
||
|
||
```bash
|
||
cd WebSite
|
||
npm run lint
|
||
npm run build
|
||
```
|
||
|
||
预期结果:
|
||
|
||
- TypeScript 检查通过。
|
||
- Vite 构建通过。
|
||
|
||
## API 验证
|
||
|
||
```bash
|
||
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: 1`
|
||
- `exportedMaskProjects: 0`
|
||
- `dicomCount: 300`
|
||
- `modelCount: 9`
|
||
- 已将“已处理项目”语义改为“已导出 Mask 项目”,避免项目总数为 1 时误导为已处理 1。
|
||
- `GET /api/projects/head-ct-demo/dicom-preview?slice=0` 返回:
|
||
- `width: 512`
|
||
- `height: 512`
|
||
- `total: 300`
|
||
- `fileName: 1.dcm`
|
||
- `pixels` base64 数据。
|
||
- `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。
|