본문으로 건너뛰기
cccskills
무료GitHub에 공개

tests-run

Execute Unity tests (`EditMode` or `PlayMode`) and return per-test results. Supports filtering by test assembly, namespace, class, and method. Refreshes the AssetDatabase first; defers execution across domain reloads if scripts changed. Precondition: every open scene must be saved — dirty scenes abort the run.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md9.9 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Tests / Run

Execute Unity tests and return detailed results. Supports filtering by test mode, assembly, namespace, class, and method. Recommended to use 'EditMode' for faster iteration during development. Precondition: every open scene MUST be saved (no unsaved changes). If any open scene is dirty, this tool throws an InvalidOperationException listing the dirty scenes; save them and retry.

Filters

  • testMode (default EditMode) — EditMode or PlayMode. EditMode is faster; prefer it during iteration.
  • testAssembly / testNamespace / testClass / testMethod — optional, layered filters. Namespace and class filters become regex groupNames so the validation count and Unity's execution stay in sync. testMethod must be fully qualified (Namespace.FixtureName.TestName).
  • query — RQL over the tests source instead of the four filters: any selection, run as ONE Test Runner run, e.g. tests | where fixture == "PlayerTests" or categories contains "Smoke". One mode per run; the mode comes from the selected tests. Explore first with rql-query: tests | where fullName contains "Spline" | select fullName mode.
  • result — RQL stages applied to the results (source testResults: name status durationMs message stackTrace), e.g. where status == "Failed" | select name message; the answer is then a summary line plus compact RQL text.

Response toggles

  • includePassingTests (default false) — include details for passing tests; otherwise only failing test details are returned.
  • includeMessages (default true) — include per-test result messages.
  • includeStacktrace (default false) — include stack traces for failing tests.
  • includeLogs (default false) — include console logs captured during the run.
  • logType (default Warning) — minimum log severity to include.
  • includeLogsStacktrace (default false) — include log stack traces (large payload; use sparingly).

Domain reloads

If the AssetDatabase refresh triggers compilation, the tool persists the run parameters to SessionState, returns Processing, and resumes the run automatically after the reload completes. Pre-existing compilation errors short-circuit the run and return the error details so the caller can fix the project first.

How to Call

unity-mcp-cli run-tool tests-run --input '{
  "testMode": "string_value",
  "testAssembly": "string_value",
  "testNamespace": "string_value",
  "testClass": "string_value",
  "testMethod": "string_value",
  "query": "string_value",
  "result": "string_value",
  "includePassingTests": false,
  "includeMessages": false,
  "includeStacktrace": false,
  "includeLogs": false,
  "logType": "string_value",
  "includeLogsStacktrace": false
}'

For complex input (multi-line strings, code), save the JSON to a file and use:

unity-mcp-cli run-tool tests-run --input-file args.json

Or pipe via stdin (recommended):

unity-mcp-cli run-tool tests-run --input-file - <<'EOF'
{"param": "value"}
EOF

Troubleshooting

If unity-mcp-cli is not found, either install it globally (npm install -g unity-mcp-cli) or use npx unity-mcp-cli instead. Read the /unity-initial-setup skill for detailed installation instructions.

Input

NameTypeRequiredDescription
testModestringNoTest mode to run. Options: 'EditMode', 'PlayMode'. Default: 'EditMode'
testAssemblystringNoSpecific test assembly name to run (optional). Example: 'Assembly-CSharp-Editor-testable'
testNamespacestringNoSpecific test namespace to run (optional). Example: 'MyTestNamespace'
testClassstringNoSpecific test class name to run (optional). Example: 'MyTestClass'
testMethodstringNoSpecific fully qualified test method to run (optional). Example: 'MyTestNamespace.FixtureName.TestName'
querystringNoRQL over the 'tests' source selecting the tests (instead of the filters above), run as one run. Example: tests
resultstringNoRQL stages applied to the results (source 'testResults': name status durationMs message stackTrace); the answer is a summary line plus compact text. Example: where status == "Failed"
includePassingTestsbooleanNoInclude details for all tests, both passing and failing (default: false). If you just need details for failing tests, set to false.
includeMessagesbooleanNoInclude test result messages in the test results (default: true). If you just need pass/fail status, set to false.
includeStacktracebooleanNoInclude stack traces in the test results (default: false).
includeLogsbooleanNoInclude console logs in the test results (default: false).
logTypestringNoLog type filter for console logs. Options: 'Log', 'Warning', 'Assert', 'Error', 'Exception'. (default: 'Warning')
includeLogsStacktracebooleanNoInclude stack traces for console logs in the test results (default: false). This is huge amount of data, use only if really needed.

Input JSON Schema

{
  "type": "object",
  "properties": {
    "testMode": {
      "type": "string",
      "enum": [
        "EditMode",
        "PlayMode"
      ]
    },
    "testAssembly": {
      "type": "string"
    },
    "testNamespace": {
      "type": "string"
    },
    "testClass": {
      "type": "string"
    },
    "testMethod": {
      "type": "string"
    },
    "query": {
      "type": "string"
    },
    "result": {
      "type": "string"
    },
    "includePassingTests": {
      "type": "boolean"
    },
    "includeMessages": {
      "type": "boolean"
    },
    "includeStacktrace": {
      "type": "boolean"
    },
    "includeLogs": {
      "type": "boolean"
    },
    "logType": {
      "type": "string",
      "enum": [
        "Error",
        "Assert",
        "Warning",
        "Log",
        "Exception"
      ]
    },
    "includeLogsStacktrace": {
      "type": "boolean"
    }
  }
}

Output

Output JSON Schema

{
  "type": "object",
  "properties": {
    "result": {
      "$ref": "#/$defs/com.IvanMurzak.Unity.MCP.Editor.API.TestRunner.TestRunResponse"
    }
  },
  "$defs": {
    "com.IvanMurzak.Unity.MCP.Editor.API.TestRunner.TestSummaryData": {
      "type": "object",
      "properties": {
        "Status": {
          "type": "string",
          "enum": [
            "Unknown",
            "Passed",
            "Failed"
          ]
        },
        "TotalTests": {
          "type": "integer"
        },
        "PassedTests": {
          "type": "integer"
        },
        "FailedTests": {
          "type": "integer"
        },
        "SkippedTests": {
          "type": "integer"
        },
        "Duration": {
          "type": "string"
        }
      },
      "required": [
        "Status",
        "TotalTests",
        "PassedTests",
        "FailedTests",
        "SkippedTests",
        "Duration"
      ]
    },
    "System.Collections.Generic.List(com.IvanMurzak.Unity.MCP.Editor.API.TestRunner.TestResultData)": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/com.IvanMurzak.Unity.MCP.Editor.API.TestRunner.TestResultData"
      }
    },
    "com.IvanMurzak.Unity.MCP.Editor.API.TestRunner.TestResultData": {
      "type": "object",
      "properties": {
        "Name": {
          "type": "string"
        },
        "Status": {
          "type": "string",
          "enum": [
            "Passed",
            "Failed",
            "Skipped"
          ]
        },
        "Duration": {
          "type": "string"
        },
        "Message": {
          "type": "string"
        },
        "StackTrace": {
          "type": "string"
        }
      },
      "required": [
        "Status",
        "Duration"
      ]
    },
    "System.Collections.Generic.List(com.IvanMurzak.Unity.MCP.Editor.API.TestRunner.TestLogEntry)": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/com.IvanMurzak.Unity.MCP.Editor.API.TestRunner.TestLogEntry"
      }
    },
    "com.IvanMurzak.Unity.MCP.Editor.API.TestRunner.TestLogEntry": {
      "type": "object",
      "properties": {
        "Condition": {
          "type": "string"
        },
        "StackTrace": {
          "type": "string"
        },
        "Type": {
          "type": "string",
          "enum": [
            "Error",
            "Assert",
            "Warning",
            "Log",
            "Exception"
          ]
        },
        "Timestamp": {
          "type": "string",
          "format": "date-time"
        },
        "LogLevel": {
          "type": "integer"
        }
      },
      "required": [
        "Type",
        "Timestamp"
      ]
    },
    "com.IvanMurzak.Unity.MCP.Editor.API.TestRunner.TestRunResponse": {
      "type": "object",
      "properties": {
        "Summary": {
          "$ref": "#/$defs/com.IvanMurzak.Unity.MCP.Editor.API.TestRunner.TestSummaryData",
          "description": "Summary of the test run including total, passed, failed, and skipped counts."
        },
        "Results": {
          "$ref": "#/$defs/System.Collections.Generic.List(com.IvanMurzak.Unity.MCP.Editor.API.TestRunner.TestResultData)",
          "description": "List of individual test results with details about each test."
        },
        "Logs": {
          "$ref": "#/$defs/System.Collections.Generic.List(com.IvanMurzak.Unity.MCP.Editor.API.TestRunner.TestLogEntry)",
          "description": "Log entries captured during test execution."
        }
      }
    }
  },
  "required": [
    "result"
  ]
}

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

build-cli

무료

Build the unity-mcp-cli TypeScript CLI tool and link it globally for terminal use.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

IvanMurzak/Unity-MCP4.5천2026년 10월 19일 업데이트

Review and resolve PR comments from GitHub. Validates each comment, fixes legitimate issues.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

IvanMurzak/Unity-MCP4.5천2026년 10월 19일 업데이트

Install a Unity package from the registry, a Git URL, or a local path. Modifies `manifest.json` and triggers package resolution; may also trigger a domain reload — the final result is delivered after the reload via the request's `requestId`. Use 'package-search' / 'package-list' for discovery first.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

IvanMurzak/Unity-MCP4.5천2026년 10월 19일 업데이트

List all UPM packages installed in the Unity project — name, version, source, description. Optionally filter by source (registry, embedded, local, git, built-in, local tarball), by name/display/description substring, and by direct-dependency-only.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

IvanMurzak/Unity-MCP4.5천2026년 10월 19일 업데이트

Uninstall a UPM package from the Unity project. Modifies `manifest.json` and may trigger a domain reload — the final result is delivered after the reload via the request's `requestId`. Built-in packages and packages that are dependencies of others cannot be removed. Use 'package-list' to list installed packages first.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

IvanMurzak/Unity-MCP4.5천2026년 10월 19일 업데이트

Search Unity's package registry plus locally installed packages (Git, local, embedded sources) by query string. Returns available versions and installation status. Online mode fetches exact matches from the live registry then supplements with cached substring matches.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

IvanMurzak/Unity-MCP4.5천2026년 10월 19일 업데이트

IvanMurzak의 스킬 모두 보기

이 스킬의 문제 신고