|
- [
- {
- "file": "01-fox-actual-scene.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "狐狸:真实细分权限、全部属性、清空绑定、蒙皮保护、相机与封面保存重开",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "02-fox-reopened-skin-protection.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "狐狸:真实细分权限、全部属性、清空绑定、蒙皮保护、相机与封面保存重开",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "03-truck-part-history-reopened.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "牛奶卡车:刚性部件独立变换、软删除、历史与保存基线一致",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "04-new-failure-original-preserved.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "新建独立场景:取消、失败、保护原工程以及成功新 ID",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "05-new-separate-scene.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "新建独立场景:取消、失败、保护原工程以及成功新 ID",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "06-readonly-scene-permissions.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "只读管理员:可浏览预览与导出,模板/资源/键盘/接口不能改场景",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "07-garage-full.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "牛奶卡车:刚性部件独立变换、软删除、历史与保存基线一致",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "07-garage-hidden.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "牛奶卡车:刚性部件独立变换、软删除、历史与保存基线一致",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "07-garage-xray.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "牛奶卡车:刚性部件独立变换、软删除、历史与保存基线一致",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "10-invalid-reference-rolled-back.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "工程 JSON 与小 GLB:真实上传、损坏拒绝、引用失败回滚、相机参数往返",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "11-small-glb-real-upload.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "工程 JSON 与小 GLB:真实上传、损坏拒绝、引用失败回滚、相机参数往返",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "12-json-glb-reopened.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "工程 JSON 与小 GLB:真实上传、损坏拒绝、引用失败回滚、相机参数往返",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "13-save-failure-keeps-draft.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "保存失败与封面降级:503 保留草稿,封面上传失败保留旧图,恢复后可重试",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "14-cover-failure-keeps-old-image.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "保存失败与封面降级:503 保留草稿,封面上传失败保留旧图,恢复后可重试",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "15-save-retry-success.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "保存失败与封面降级:503 保留草稿,封面上传失败保留旧图,恢复后可重试",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "16-real-unsaved-recovery.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "同版本恢复与 409:真实未保存草稿重载、服务器新版本保护与隔离下载",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "17-conflict-does-not-overwrite.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "同版本恢复与 409:真实未保存草稿重载、服务器新版本保护与隔离下载",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "18-stale-recovery-explicit-decision.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "同版本恢复与 409:真实未保存草稿重载、服务器新版本保护与隔离下载",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "19-publish-failure-stays-draft.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "发布:前端绑定校验、保存与发布失败阻断、真实固定版本供训练目录使用",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "20-scene-published-fixed-version.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "发布:前端绑定校验、保存与发布失败阻断、真实固定版本供训练目录使用",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "20-template-depot-1.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "场景模板实际加载、保存重开:真实装备车库",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "21-published-scene-cover-in-list.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "发布:前端绑定校验、保存与发布失败阻断、真实固定版本供训练目录使用",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "21-template-terrain-1.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "场景模板实际加载、保存重开:真实野外训练场",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "22-template-workshop-1.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "场景模板实际加载、保存重开:综合检验车间",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "23-template-workshop-real.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "场景模板实际加载、保存重开:演示维修车间(可拆分)",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "24-template-workshop-2.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "场景模板实际加载、保存重开:总成拆卸车间",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "25-template-workshop-3.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "场景模板实际加载、保存重开:部件分解车间",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "26-template-workshop-4.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "场景模板实际加载、保存重开:清洗检测车间",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "27-template-workshop-5.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "场景模板实际加载、保存重开:复装调试车间",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "28-template-outdoor-1.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "场景模板实际加载、保存重开:室外综合训练场",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "29-template-confirm-empty.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "模板搜索与未保存切换确认保留和放弃",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "30-eight-basic-assets-reopened.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "八种基础资源逐项放置、真实拖放、搜索和保存重开",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "31-venue-depot-reopened.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "两种整体场地加载、重复放置阻止与显式删除后替换",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "32-venue-terrain-reopened.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "两种整体场地加载、重复放置阻止与显式删除后替换",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "33-fox-placed-visible.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "模型成果狐狸卡车双击与真实拖入、树搜索和部件隐藏重开",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "34-truck-placed-part-restored.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "模型成果狐狸卡车双击与真实拖入、树搜索和部件隐藏重开",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "40-viewport-dark-1920.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "真实相机操控、视口拾取、预览禁写和两尺寸主题可读性",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "41-viewport-light-1440.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "真实相机操控、视口拾取、预览禁写和两尺寸主题可读性",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "42-fox-preview-original-material.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "真实相机操控、视口拾取、预览禁写和两尺寸主题可读性",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "43-real-transform-gizmo.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "真实变换手柄移动旋转缩放、吸附与保存重开",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "44-cache-close-save-failure.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "缓存标签暂停键盘、草稿恢复以及关闭取消和保存失败留页",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "51-scene-update-only-saved.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "仅场景编辑权限:固定模型可加载和保存,不能发布或访问模型页面",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "52-scene-publish-only-no-save.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "仅场景发布权限:浏览器发布已存副本,不发送保存或上传请求",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "53-scene-route-access-denied.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "无场景页面权限:编辑路由和直接内容接口均拒绝访问",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "54-scene-role-switch-cancel-keeps-draft.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "后台场景未保存时切换角色:关闭确认保留草稿,保存切换后重建只读权限",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "55-scene-role-switch-saved-readonly.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "后台场景未保存时切换角色:关闭确认保留草稿,保存切换后重建只读权限",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "56-scene-other-tab-recovery-preserved.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "双标签各自修改场景:保存和明确丢弃当前页均保留另一页真实恢复稿",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "60-scene-load-failure-retry.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "加载失败重试与加载互斥:不展示可写半场景、恢复网络后模型完整加载",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "61-model-loading-blocks-partial-save.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "加载失败重试与加载互斥:不展示可写半场景、恢复网络后模型完整加载",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "62-new-edits-preserved-during-save.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "延迟保存快照:重复点击只提交一次,期间新编辑保留,旧恢复稿不会误报冲突",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "70-fox-training-scene-reopened.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "fox:场景发布后在真实训练编排选择、保存并重开静态模型",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- },
- {
- "file": "70-truck-training-scene-reopened.png",
- "status": "PASS",
- "captionPresent": true,
- "associations": [
- {
- "testTitle": "truck:场景发布后在真实训练编排选择、保存并重开静态模型",
- "status": "PASS",
- "hashMatches": true
- }
- ]
- }
- ]
|