A minimal Unity 2022.3.62f3 project that consumes USB directly from the repository.
Tests remain in the package's Tests directories, so they exercise shipped code.
The local package is enabled in testables; changes need no copy or publication.
Use this host for tests, not for game development. Integration fixtures replace scenes, create/delete scratch assets and temporarily move fixture resources. Unity caches, generated project settings, imported fixtures and results are ignored. Keep the Editor closed before launching another test process against this project.
On macOS with the baseline Editor installed:
bash scripts/test-unity.shRun from the repository root. To use another installed Editor:
USB_UNITY_EDITOR="/path/to/Unity" bash scripts/test-unity.shThe runner first resolves packages and runs UsbTestProjectSetup.Prepare, importing
TMP Essential Resources and creating a small mesh fixture. These resources are
obtained from Unity's installed TMP package rather than checked into USB. It then
runs all EditMode tests with graphics enabled. Initial package resolution may
require network access and an active Unity license. Logs and NUnit XML go under
TestProject/TestResults/.
A focused compatibility run:
bash scripts/test-unity.sh -testFilter 'SemanticBatchTests;UiAuthoringTests;ModelInspectionTests'Open this project in Unity to use Window > General > Test Runner. Run
USB Tests > Prepare Fixtures first. Some integration fixtures intentionally run
only in batch mode; interactive runs skip them. No -nographics for UI tests.
Python transport/schema tests are separate:
cd mcp-editor-bridge
.venv/bin/python -m unittest discover -s tests -vIf the Python environment is missing, run uv sync in mcp-editor-bridge first.
The package includes semantic batches/prefab queries, uGUI authoring, model inspection, asset refresh, Editor throttling and serialized mesh references. See batch validation and UI validation.
Two explicit opt-in refresh integration checks have pre-existing batch-mode
settling failures (RealNoOpRefreshSettles, RealNonCodeRefreshImportsTextAndSettles).
They are documented in UI validation. NUnit excludes explicit tests from a normal
full-suite run; select them by test filter when investigating refresh. The
optional Synty model fixture skips when absent. A full-suite nonzero exit should
be investigated using the XML, rather than treating every failure as a regression.
The host pins the minimum supported Unity family. Upgrading this host to Unity 6 requires updating uGUI/TMP dependencies; simply overriding the executable is not a verified cross-version configuration. Use a separate host copy for upgrades.
The runner completed end to end on macOS / Unity 2022.3.62f3: 49 passed, zero failed, seven skipped. Skips were four explicit Editor-preference tests, two explicit refresh integration tests and the optional absent Synty model fixture. TMP import completion and the generated mesh fixture were verified. The initial resource-import setup bug was fixed before this successful run.