Parallel test orchestrator. Runs all 9 test suites concurrently via Task sub-agents and the iwsdk CLI. Handles build, example setup, dev servers, agent launch, polling, retries, and result aggregation.
复制安装指令,让 AI 自动完成配置 · 推荐新手
请帮我安装 askskill 上的 "test-all" 技能: 1. 下载 https://raw.githubusercontent.com/facebook/immersive-web-sdk/main/.claude/skills/test-all/SKILL.md 2. 保存为 ~/.claude/skills/test-all/SKILL.md 3. 装好后重载技能,告诉我可以用了
Runs all 9 IWSDK test suites simultaneously. The orchestrator handles the full lifecycle: build, example prep, dev servers, sub-agent launch, polling, retries, cleanup, and aggregate reporting.
Each test gets its own example directory and dev server. Sub-agents read the skill files and execute tests through the direct npx iwsdk flow described in each skill.
| Agent | Example Dir | Suites | Skill File |
|---|---|---|---|
| test-interactions | examples/poke | 12 | test-interactions/SKILL.md |
| test-ecs-core | examples/poke-ecs | 8 | test-ecs-core/SKILL.md |
| test-environment | examples/poke-environment | 6 | test-environment/SKILL.md |
| test-level | examples/poke-level | 5 | test-level/SKILL.md |
| test-ui | examples/poke-ui | 5 | test-ui/SKILL.md |
| test-audio | examples/audio | 6 | test-audio/SKILL.md |
| test-grab | examples/grab | 5 | test-grab/SKILL.md |
| test-locomotion | examples/locomotion | 6 | test-locomotion/SKILL.md |
| test-physics | examples/physics | 5 | test-physics/SKILL.md |
Ports are not pre-assigned. Each dev server picks its own port dynamically. The orchestrator can discover each active URL from the server logs or npx iwsdk dev status, but the sub-agent skills no longer need the port explicitly.
node -v
pnpm -v
Verify node >= 20.19.0 and pnpm is available. Stop on failure.
pnpm install
cd packages/vite-plugin-dev && npx playwright install chromium && cd ../..
pnpm build:tgz
All must succeed. Stop on failure. Note: npx playwright must run from packages/vite-plugin-dev where playwright is a dependency.
5 tests use the poke example. Clone it into separate directories so each gets its own dev server:
node scripts/test-prep.mjs clone
node scripts/test-prep.mjs install
Start all dev servers, wait for them to be ready, and discover their active URLs. This single command handles everything — starting servers, polling for readiness, and outputting the current port map:
node scripts/test-servers.mjs start
The output is JSON with the current port map: {"poke": 8084, "poke-ecs": 8082, ...}. Keep it for diagnostics, but the sub-agents should rely on the direct CLI flow inside each example directory rather than passing ports around.
If any server fails to start within 60 seconds, the script reports which ones are missing and exits with code 1. Check /tmp/iwsdk-dev-<name>.log for errors.
To re-check ports later without restarting:
node scripts/test-servers.mjs ports
For each test, launch a Task sub-agent with subagent_type: "Bash", mode: "bypassPermissions", and run_in_background: true.
Each sub-agent gets this prompt (with <SKILL_FILE>, <EXAMPLE_DIR>, and <ROOT> substituted):
Read the file at <ROOT>/.claude/skills/<SKILL_FILE> and execute the test instructions
starting from Step 3 (Verify Connectivity). Steps 1 and 2 have already been completed —
the dev server for <EXAMPLE_DIR> is already running.
Execute all test suites (Steps 3-4), then do Step 5 (cleanup and results summary).
Do NOT kill the dev server in cleanup — the parent agent will handle that.
Launch all 9 Task agents in a single message with multiple Task tool calls. This starts them concurrently.
…
Test grab system (distance grab, one-hand grab, two-hand grab) against the grab example using the iwsdk CLI.
Test XR interactions (ray, poke/touch, dual-mode, audio, UI panel) against the poke example using the iwsdk CLI.
Find and click a target object in XR. Use when testing UI interactions, clicking buttons, or verifying interactable elements work correctly.
IWSDK project planning and best practices guide. Use when planning new IWSDK features, designing systems/components, reviewing IWSDK code architecture, or when the user asks about IWSDK patterns, ECS design, signals, or reactive programming in this codebase.
Develop and iterate on IWSDK UI panels efficiently. Use when working on PanelUI components, debugging UI layout, or improving UI design in IWSDK applications.
Test level system (LevelRoot, LevelTag, default lighting, scene hierarchy) against the poke example using the iwsdk CLI.