メインコンテンツまでスキップ

テスト

MCP for Unityには大きく3種類の検証があります。変更した層に対応するものをpush前に実行します。

Python test

場所: Server/tests/

cd Server
uv run pytest tests/ -v

# 1 file
uv run pytest tests/test_manage_material.py -v

# name pattern
uv run pytest tests/ -k "test_create_material" -v

新しいmanage_<domain>を追加する場合は、既存testを参考にServer/tests/test_manage_<domain>.pyを追加します。

Unity test

場所: TestProjects/UnityMCPTests/Assets/Tests/

UnityでTestProjects/UnityMCPTestsを開き、Window → General → Test RunnerからEditMode / PlayMode testを実行できます。

C# toolを追加した場合は、対応するEditMode testを既存asmdef配下へ追加します。

local headless harness

CIと同じ入口でbridgeを起動し、smoke / EditMode / PlayModeを実行できます。

python tools/local_harness.py

主なoption:

python tools/local_harness.py --legs smoke,editmode
python tools/local_harness.py --reuse
python tools/local_harness.py --keep-alive
python tools/local_harness.py --no-warmup

exit codeはsetup failure、compile failure、license不足などを区別します。正確なcontractはtools/local_harness.pyを正本として確認します。

複数Unity versionのcompile check

tools/check-unity-versions.sh
tools/check-unity-versions.sh --full

Windows:

pwsh .\tools\check-unity-versions.ps1
pwsh .\tools\check-unity-versions.ps1 -Full

matrixはtools/unity-versions.jsonです。compatibility shimや#if UNITY_*_OR_NEWERを変更した場合は特に重要です。

Git hook

tools/install-hooks.sh

Unity関連pathを変更したpushではversion checkを実行します。またserver tool/resource registryの変更時にはreference docsの再生成も支援します。

generated referenceの検証

cd Server
uv run python ../tools/generate_docs_reference.py
git diff --exit-code ../website/docs/reference

CIではgenerated referenceとregistryのdriftを検出します。自動生成範囲は手書きで修正しません。

主なCI

  • python-tests.yml — Python test
  • unity-tests.yml — Unity test / version matrix
  • docs-deploy.yml — Docusaurus buildとPages deploy
  • docs-generate.yml — generated referenceのdrift check

workflow名やmatrixは変更される可能性があるため、最終的な正本は.github/workflows/tools/unity-versions.jsonです。