agentskills.codes
UN

Use when users want to run Unity tests or read test results.

Install

mkdir -p .claude/skills/unity-test && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/14373" && unzip -o skill.zip -d .claude/skills/unity-test && rm skill.zip

Installs to .claude/skills/unity-test

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Use when users want to run Unity tests or read test results.
60 chars✓ has a “when” trigger

About this skill

Test Skills

Overview

Kick off Unity tests and read their XML reports. Recipes are stateless fire-and-forget + read pairs — there is no job ID, no polling loop inside a single Unity_RunCommand. Trigger a run in one call, read TestResults/*.xml in a later call.

Mental model

  1. Trigger: test_run or test_run_by_name registers a result callback, calls TestRunnerApi.Execute(...), and returns { started: true, resultsPath }.
  2. The run recipe's callback writes the XML — TestRunnerApi.Execute does not. When the run finishes, the registered ICallbacks.RunFinished calls TestRunnerApi.SaveResultToFile, producing <project-root>/TestResults/<mode>-mcp.xml. The api + callback are held in a static so they survive the off-thread run. (No callback ⇒ no file: a bare Execute starts the run but never writes a report.)
  3. Read: test_get_result, test_get_last_result, or test_get_summary parse the newest matching TestResults/*.xml and return counts + failed names.

Polling across calls is the caller's job, not a recipe's. Only one Test Runner run should be active at a time.

Precondition: the Editor must be open and responsive on the intended project before triggering.

PlayMode caveat: a PlayMode run may trigger a domain reload that discards the in-memory callback before it fires, so no XML is written. For reliable PlayMode reports, disable domain reload for the run or use a persistent (compiled) editor runner. EditMode runs do not reload the domain.

Common Mistakes

DO NOT (common hallucinations):

  • test_run_all does not exist → use test_run or test_run_by_name.
  • test_create_template does not exist → use test_create_editmode or test_create_playmode.
  • test_get_status does not exist → use test_get_result (reads the XML, stateless).
  • There is no jobId anywhere. If older docs mention one, ignore them.
  • There is no test_cancel — Unity TestRunnerApi has no public hard-cancel surface.
  • There is no test_smoke_skills — it depended on an upstream REST skill registry that isn't in this pack.

Routing:

  • For compile error checking → editor_get_state (isCompiling field).
  • For test script creation → test_create_editmode / test_create_playmode, then edit via the script module.

Skills

test_run

Kick off tests. Returns { success, started, mode, filter, resultsPath } immediately; the callback writes TestResults/<mode>-mcp.xml when the run ends.

ParameterTypeRequiredDefaultDescription
testModestringNoEditModeEditMode or PlayMode.
filterstringNonullTest-name substring forwarded as Filter.testNames[0].

test_run_by_name

Kick off a single class or fully-qualified method. Returns { success, started, testName, mode, resultsPath }; the callback writes TestResults/<mode>-mcp.xml when the run ends.

ParameterTypeRequiredDefaultDescription
testNamestringYes-Exact class name or Ns.Class.Method.
testModestringNoEditModeEditMode or PlayMode.

test_get_result

Read the newest TestResults/<mode>-*.xml and return parsed counts.

ParameterTypeRequiredDefaultDescription
testModestringNoEditModeWhich XML family to filter on.

Returns: { success, file, total, passed, failed, skipped, inconclusive, failedNames, startTime, endTime, durationSeconds }

test_get_last_result

Newest XML across all modes. No parameters.

Returns: { success, file, mode, total, passed, failed, skipped, inconclusive, failedNames, startTime, endTime, durationSeconds }

test_get_summary

Aggregate every XML report under TestResults/. No parameters.

Returns: { success, totalRuns, totalPassed, totalFailed, totalSkipped, totalInconclusive, allFailedTests, files }

test_list

List available tests.

ParameterTypeRequiredDefaultDescription
testModestringNoEditModeEditMode or PlayMode.
limitintNo100Max tests to list.

test_list_categories

List test categories.

ParameterTypeRequiredDefaultDescription
testModestringNoEditModeEditMode or PlayMode.

test_create_editmode

Write an EditMode test template synchronously.

ParameterTypeRequiredDefaultDescription
testNamestringYes-Class name. No /, \, ...
folderstringNoAssets/Tests/EditorMust start with Assets/ or Packages/.

Returns: { success, path, testName }

test_create_playmode

Write a PlayMode test template synchronously.

ParameterTypeRequiredDefaultDescription
testNamestringYes-Class name. No /, \, ...
folderstringNoAssets/Tests/RuntimeMust start with Assets/ or Packages/.

Returns: { success, path, testName }


RunCommand Examples

Recipe path rule: ../../recipes/test/<command>.md

See ../../recipes/test/<command>.md for C# templates.

Search skills

Search the agent skills registry