用途:在 $IWSDK_REPO_ROOT/examples/locomotion 示例中,对移动(locomotion)系统进行端到端测试。所有工具调用均通过 npx @iwsdk/cli <subcommand> [--input-json '<JSON>'] [--timeout <ms>] 在该示例工作目录中执行,CLI 会从 cwd 自动发现 IWSDK 应用根目录。可用 npx @iwsdk/cli mcp inspect 查看工具与子命令。stdout 返回 JSON:{ok, workspaceRoot, operation, result},需解析后校验断言。
主要能力:覆盖 6 个测试套件——滑动移动(左摇杆前后滑动与停止)、快速转身(右摇杆左右边缘触发约 45 度旋转)、传送(右摇杆下压激活弧线、松开落点)、跳跃(右控制器 A 键,index 3)、系统注册与配置(LocomotionSystem 优先级 -5,TurnSystem/SlideSystem/TeleportSystem 优先级 0 及各自配置键,Elevator 与 ElevatorSystem)、稳定性(检查 error/warn 日志)。
使用方式:先安装依赖 cd $IWSDK_REPO_ROOT/examples/locomotion && npm run fresh:install;再以 run_in_background: true 启动 npm run dev(不要追加 &),轮询 Vite 就绪消息或用 npx @iwsdk/cli dev status 确认;随后用 npx @iwsdk/cli ecs systems 验证连通性。测试前依次执行 npx @iwsdk/cli browser reload --timeout 20000、sleep 3、npx @iwsdk/cli xr enter --timeout 20000、sleep 2。通过 npx @iwsdk/cli xr set-gamepad-state 模拟摇杆与按键,用 npx @iwsdk/cli browser screenshot 对比画面,用 npx @iwsdk/cli ecs find/query 校验实体与组件。命令须逐条执行,解析输出并验证断言后再继续,不可串联多条 CLI 命令;需要等待时用独立的 sleep N。
关键限制:移动作用于 XR origin 而非头显,头显位置相对不变,需靠截图判断位移;传送前右控制器不得悬停在可交互实体上;快速转身为边缘触发,两次转身之间必须回中;摇杆 Y 轴 -1 为前进、1 为后退,传送用 1 激活弧线;页面重载后实体索引会变化,不可缓存,须用 npx @iwsdk/cli ecs find 重新发现。耗时操作(reload、xr enter、截图)建议 --timeout 20000;服务器 60 秒内未就绪则全部套件记 FAIL。
收尾与恢复:测试完成后执行 cd $IWSDK_REPO_ROOT/examples/locomotion && npx @iwsdk/cli dev down 关闭服务器,输出各套件 PASS/FAIL 汇总表并说明失败断言与实际/期望值。出现非源码缺陷的瞬时错误时可重启服务器并按每套件最多重试一次处理。整套流程的组织方式与代理规范暂未提供。