run-tests · git:20260530.7a3e5b7 · 2026-05-30 · sha256 761696a3438ed8ef
run-tests git:20260530.7a3e5b7A
Immutable. This exact content is served forever at /api/v1/blob/761696a3438ed8ef.
---
name: run-tests
description: >-
Provides guidelines for running Unity tests using the mcp__jetbrains__run_unity_tests tool.
Make sure to use this skill whenever running, executing, or re-running tests on the Unity editor.
This includes verifying implementations, debugging test failures, running specific test assemblies, or any task that involves the mcp__jetbrains__run_unity_tests tool.
Even if the user just says "run the tests" or "check if it passes", use this skill.
license: Unlicense
metadata:
author: Koji Hasegawa
---
## Gotchas
- **Never call two Unity Editor tools in parallel.** `mcp__jetbrains__unity_play_control`, `mcp__jetbrains__get_unity_compilation_result`, `mcp__jetbrains__run_unity_tests`, and `mcp__jetbrains__run_method_in_unity` must be called strictly one at a time — always wait for each call to return before making the next one. Calling them concurrently causes domain-reload conflicts that result in "canceled" or "did not connect within 30 seconds" errors.
- **When a Unity Editor tool returns `error` or `canceled`, wait 10 seconds before retrying.** Domain reload typically takes several seconds; immediate retry hits the same in-flight reload and fails again. Do not switch tools in the meantime (e.g., calling `mcp__jetbrains__unity_play_control` to verify state) — that just compounds the multiplexed calls. If the same tool returns `error` or `canceled` on two consecutive attempts (with the 10-second wait between them), stop and consult the user instead of retrying further.
## Run Tests
Before running tests, complete the following steps in order:
1. If any code was modified, confirm compilation success using the `mcp__jetbrains__get_unity_compilation_result` tool before proceeding.
2. To determine `assemblyNames` and `testMode` for a specific test class, run `${CLAUDE_SKILL_DIR}/scripts/resolve-test-target.sh <test-class-cs-path>`. The script prints `<assemblyName>\t<testMode>` (e.g. `MyGame.Tests\tPlayMode`). Skip this step when running an already-known assembly.
Then use the `mcp__jetbrains__run_unity_tests` tool to run the tests on the Unity editor.
Test execution can take several minutes. Do not re-run while a test is in progress — always wait for it to complete or time out. If a timeout occurs, narrow down the tests using filter settings and re-run.
## Rules for Test Failures
If the same test(s) fail on two or more consecutive runs, stop and consult the user rather than continuing to fix.
When consulting, clarify:
- Current failure status: what is failing and the likely cause
- Fix history: what was changed, how many times, and the scope of impact
- Planned approach: what options are being considered next
## Troubleshooting
Read the appropriate resource file based on the situation:
- Any Unity MCP tool (`mcp__jetbrains__run_unity_tests`, `mcp__jetbrains__unity_play_control`, `mcp__jetbrains__get_unity_compilation_result`) is not available or fails with a connection error: Read `${CLAUDE_SKILL_DIR}/resources/troubleshooting-run-unity-tests.md`
- A test fails due to an assertion, constraint, or comparer in the `TestHelper` namespace (excluding `TestHelper.UI`): Read `${CLAUDE_SKILL_DIR}/resources/troubleshooting-test-helper.md`
- A test fails due to an exception thrown from the `TestHelper.UI` namespace: Read `${CLAUDE_SKILL_DIR}/resources/troubleshooting-test-helper-ui.md`