SuperAPI AI 工具集

test-ui

测试与质量

查看项目

更新于 10-16 09:54

技能介绍

用途:在 Facebook immersive-web-sdk 的 poke 示例上验证 UIKitML 资源与 ScreenSpace UI 行为,共 5 个测试套件:面板加载、ScreenSpace、系统注册、组件注册、稳定性。

主要能力与用法:所有工具调用形如 npx @iwsdk/cli <subcommand> [--input-json '<JSON>'] [--timeout <ms>],需在示例工作区(cwd 为 $IWSDK_REPO_ROOT/examples/poke)内运行;CLI 会从 cwd 自动发现 IWSDK 应用根目录,无需路径技巧。可用 npx @iwsdk/cli mcp inspect 发现可用工具及其子命令。输出为 stdout 上的 JSON:{ok, workspaceRoot, operation, result}。

流程:先执行 cd $IWSDK_REPO_ROOT/examples/poke && npm run fresh:install;再以后台任务启动 cd $IWSDK_REPO_ROOT/examples/poke && npm run dev(须用 run_in_background,勿加 &),轮询 Vite 就绪信息(最多 60 秒),也可用 npx @iwsdk/cli dev status 确认 state.running;随后用 npx @iwsdk/cli ecs systems 验证连通性。测试前依次执行 npx @iwsdk/cli browser reload --timeout 20000 并用 sleep 3 休息,npx @iwsdk/cli xr enter --timeout 20000 后 sleep 2,再检查 browser logs。之后按套件断言:查找带 ScreenSpace 的实体并确认 RayInteractable、PokeInteractable 存在、PanelUI 与 PanelDocument 不存在;ScreenSpaceUISystem 的 panels 为 1;检查 ScreenSpace 的 height="50%"、width="25vw"、top/left="20px"、bottom/right="auto"、zOffset=0.2;截图返回 screenshotPath;检查 PanelUISystem 优先级 -3.8、ScreenSpaceUISystem 优先级 -3.75、FollowSystem 优先级 0;检查组件注册项;最后确认无应用级错误或警告(页面加载的 404 资源错误可接受)。完成后用 cd $IWSDK_REPO_ROOT/examples/poke && npx @iwsdk/cli dev down 关闭服务,并输出各套件 PASS/FAIL 汇总表。

限制与注意:每次只运行一条 Bash 命令,解析 JSON 断言后再继续,不得串联多条 CLI 命令;"wait N seconds" 需用独立的 sleep N 命令;实体索引在页面重载后会变化,不能缓存,始终用 ecs find 重新发现;重载、进入 XR、截图等操作建议 --timeout 20000。若出现非源码缺陷的瞬时错误,可 dev down 后重启并重试一次;同一套件失败两次则记为 FAIL 并继续。UIKitML 资源加载是异步的;XR 呈现时 ScreenSpaceUISystem 会把面板从相机重新挂到实体对象(世界空间),CSS 定位仅在 XR 外生效;面板带有 RayInteractable 与 PokeInteractable,默认控制器射线指向时可能出现 Hovered 组件。