test-all 是 IWSDK 的并行测试编排技能,用于一次性运行全部 9 个测试套件。它承担完整生命周期:构建、示例准备、开发服务器、子代理启动、等待、重试、清理与汇总报告。
覆盖的测试代理包括 test-interactions(examples/poke,12 套件)、test-ecs-core(examples/poke-ecs,8)、test-environment(6)、test-level(5)、test-ui(5)、test-audio(6)、test-grab(5)、test-locomotion(6)、test-physics(5)。各子代理读取对应 SKILL.md,并通过各自技能描述的 npx @iwsdk/cli 直接流程执行测试。
阶段一先校验 node -v 与 pnpm -v(node 需 >= 20.19.0),执行 pnpm install、cd packages/vite-plugin-dev && npx playwright install chromium && cd ../.. 及 pnpm build:tgz,任一失败即停止。阶段二用 node scripts/test-prep.mjs clone 克隆 poke 示例、node scripts/test-prep.mjs install 并行安装 9 个示例。阶段三用 node scripts/test-servers.mjs start 启动并等待 9 个开发服务器,端口动态分配不预指定,可用 node scripts/test-servers.mjs ports 复查。阶段四在单条消息中并发启动 9 个 Task 子代理(subagent_type: Bash,mode: bypassPermissions,run_in_background: true),子代理从技能文件第 3 步开始,跳过已完成的第 1、2 步,且不在提示中传递端口。阶段五等待完成通知,总硬超时 20 分钟。阶段六对瞬时失败(非断言失败)最多用 Task(resume) 重试 1 次,禁止使用 kill、lsof 等临时命令。阶段七执行 node scripts/test-servers.mjs stop 与 node scripts/test-prep.mjs cleanup 并汇总各代理结果表。
限制:子代理无法运行后台进程,故开发服务器必须由编排者预先启动;服务器 60 秒未就绪会报告缺失并以退出码 1 结束,需查看 /tmp/iwsdk-dev-<name>.log;布尔值必须为 JSON 布尔(true)而非字符串。