Xcode ui test stabilizer
Skill Xopoko/build-swift-apps/skills/xcode-ui-test-stabilizer
Create, stabilize, and run UI end-to-end tests with Xcode (XCUIApplication/xcodebuild), including environment setup, focus/input stabilization, logging/attachments, and flakiness triage. Use when adding or debugging UI automation, writing new UI tests, or making them reliable.From its SKILL.md
npx -y skills add Xopoko/build-swift-apps --skill xcode-ui-test-stabilizerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
2.4 KB, 450 tokens by cl100k_base, as published. Nobody here has run it
Xcode UI Test Stabilizer
Overview
Build deterministic UI end-to-end tests and debug flaky runs. Prefer stable accessibility identifiers, environment-driven setup, and explicit wait conditions. Always attach logs and screenshots on failure.
Workflow
-
Define the flow and success signals.
- Identify the UI state that proves success (accessibility identifiers, log markers, or system-visible views).
- Decide which logs to capture (app log, build log, UI test log).
-
Add or update the UI test.
- Use stable identifiers (avoid labels that can change or be localized).
- Avoid typing into complex text components when possible; prefer injecting text via test-only defaults.
- Gate test-only behavior behind env flags so production behavior is unchanged.
-
Stabilize the app for UI tests.
- Ensure the app activates and brings windows to front in UI test mode.
- Disable modal blockers or auto-approve when tests run.
- Use in-memory persistence for tests if persistent stores are fragile.
-
Run the test with the provided script or your own command.
- Use
scripts/run_ui_test.sh(from this skill) or runxcodebuild testwith-only-testing.
- Use
-
Triage failures.
- Attach logs and screenshots.
- Search logs for build/preview errors and unexpected user-stop messages.
- Iterate until the test is deterministic.
Stability checklist (quick wins)
- Use
waitForExistencefor every critical element. - Assert the app is running foreground before input.
- Avoid
typeTextfor long text; prefer env-injected defaults. - Click the window before interacting.
- Keep timeouts explicit and generous for CI machines.
- Attach logs and screenshots on failure.
References
- Read
references/ui-e2e-playbook.mdfor generic flags, focus fixes, typing workarounds, and debugging patterns.
Resources
scripts/
scripts/run_ui_test.sh— run a single UI test with optional .env loading and xcodebuild args.
references/
references/ui-e2e-playbook.md— general UI E2E playbook, flags, and troubleshooting.
What ships with it: 2 files
2.9 KB alongside SKILL.md, 1 of them executable
references/
- ui-e2e-playbook.md2.2 KB
scripts/
- run_ui_test.shruns682 B