--- name: uloop-run-tests description: "Execute Unity Test Runner and get detailed results. Use when you need to: (1) Run EditMode or PlayMode unit tests, (2) Verify code changes pass all tests, (3) Diagnose test failures with error messages and stack traces. Auto-saves NUnit XML results on failure." --- # uloop run-tests Execute Unity Test Runner. When tests fail, NUnit XML results with error messages and stack traces are automatically saved. Read the XML file at `XmlPath` for detailed failure diagnosis. ## Usage ```bash uloop run-tests [options] ``` ## Parameters | Parameter | Type | Default | Description | |-----------|------|---------|-------------| | `--test-mode` | string | `EditMode` | Test mode: `EditMode`, `PlayMode` | | `--filter-type` | string | `all` | Filter type: `all`, `exact`, `regex`, `assembly` | | `--filter-value` | string | - | Filter value (test name, pattern, or assembly) | ## Global Options | Option | Description | |--------|-------------| | `--project-path ` | Target a specific Unity project (mutually exclusive with `--port`) | | `-p, --port ` | Specify Unity TCP port directly (mutually exclusive with `--project-path`) | ## Examples ```bash # Run all EditMode tests uloop run-tests # Run PlayMode tests uloop run-tests --test-mode PlayMode # Run specific test uloop run-tests --filter-type exact --filter-value "MyTest.TestMethod" # Run tests matching pattern uloop run-tests --filter-type regex --filter-value ".*Integration.*" ``` ## Output Returns JSON with: - `Success` (boolean): Whether all tests passed - `Message` (string): Summary message - `TestCount` (number): Total tests executed - `PassedCount` (number): Passed tests - `FailedCount` (number): Failed tests - `SkippedCount` (number): Skipped tests - `XmlPath` (string): Path to NUnit XML result file (auto-saved when tests fail) ### XML Result File When tests fail, NUnit XML results are automatically saved to `{project_root}/.uloop/outputs/TestResults/.xml`. The XML contains per-test-case results including: - Test name and full name - Pass/fail/skip status and duration - For failed tests: `` (assertion error) and ``