Files
obsidian-vault/work/wiki/apple-browsers/vm-ui-testing.md
T

4.1 KiB
Executable File

source, confidence, namespace, last_updated, tags, virfield_updated
source confidence namespace last_updated tags virfield_updated
https://github.com/mallexxx/virfield/tree/codex/retire-lume-release-hardening 1 work 2026-10-14
ui-testing
vm
virfield
xcode
2026-10-14

VM UI Testing — Virfield

Host manager — Virfield на Go; текущий runtime — Tart + SSH nodes. Опубликованный релиз, установленный кандидат, проверенная матрица OS/Xcode и незакрытые release gates различаются; их актуальный статус — только в personal/projects/virfield. Эта заметка описывает границу UI-test integration; установка, API/MCP и команды поддерживаются в Operations.

Поток UI-теста

  1. Получить lease подготовленного image с отдельным caller-owned SSH public key через CLI/API или MCP vm_acquire; дождаться состояния ready.
  2. По pinned SSH перенести/клонировать исходники на локальный диск VM и запустить build/test внутри гостя. Runner/Executor отвечает за команды, Xcode scheme и сбор результатов.
  3. Выгрузить .xcresult, логи и screenshots до освобождения lease.
  4. Вызвать vm_release и проверить завершение cleanup; expiry также запускает cleanup. Освобождение lease удаляет disposable VM.

Для physical-host lease workspace — ~/virfield/leases/<vm>/workspace; release не сбрасывает shared account и не убивает его процессы. VM lease disposable, host lease — нет.

Virfield управляет VM и соединением, а не выполняет XCUITest workflow через MCP. Протокол Runner/Broker и полный автоматический UI-test flow требуют отдельной интеграционной приёмки. Гостевые Peekaboo/tools устанавливаются full image profile, но host MCP не экспортирует их UI-команды.

Ограничения

  • Локальный Tart pool: максимум две macOS VM в текущем deployment с учётом внешних VM и reservations; удалённые ноды имеют отдельные slots; capacity_exhausted — повод поставить run в очередь Broker.
  • Успешный acquire означает принятый job, не готовность гостя. Использовать lease только после ready.
  • Recipe не монтирует host shared folders. Build workspace находится в VM; личные host SSH keys и provider credentials не запекаются в golden.
  • Full UI-test profile uitest-27-v1 проверен на macOS 27 build 26A428 и требует Xcode 27+. Кандидат поддерживает выбор версий через каталог; реально принятые сочетания перечислены в карточке Virfield и Verification. Совместимость с конкретной веткой apple-browsers проверяется отдельно.
  • Реальный golden/clone E2E Virfield прошёл на одном Mac. Это не подтверждение XCUITest run для apple-browsers через новый Broker/Runner.

Ссылки