xctest-ui-test-generator

SkillDev tools

Generate XCTest UI tests for macOS applications with accessibility identifiers and page object patterns

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the xctest-ui-test-generator skill

What this skill tells your AI

The instructions your AI receives, as published by a5c-ai/babysitter in library/specializations/desktop-development/skills/xctest-ui-test-generator/SKILL.md and read by ahel’s review.

Generate XCTest UI tests for macOS applications. This skill creates UI test classes with accessibility identifiers, page object patterns, and proper test organization.

Capabilities

  • Generate XCUITest test classes
  • Create page object pattern implementations
  • Set up accessibility identifiers
  • Generate test data factories
  • Configure UI test schemes
  • Create screenshot capture helpers
  • Set up performance testing
  • Generate test plans

Input Schema

{
  "type": "object",
  "properties": {
    "projectPath": { "type": "string" },
    "targetViews": { "type": "array" },
    "usePageObjects": { "type": "boolean", "default": true },
    "generateAccessibilityIds": { "type": "boolean", "default": true }
  },
  "required": ["projectPath"]
}

Generated Test Class

import XCTest

final class MainViewUITests: XCTestCase {
    var app: XCUIApplication!

    override func setUpWithError() throws {
        continueAfterFailure = false
        app = XCUIApplication()
        app.launchArguments = ["--uitesting"]
        app.launch()
    }

    func testMainViewLoads() throws {
        let mainView = app.windows["MainWindow"]
        XCTAssertTrue(mainView.waitForExistence(timeout: 5))

        let titleLabel = mainView.staticTexts["welcomeLabel"]
        XCTAssertTrue(titleLabel.exists)
        XCTAssertEqual(titleLabel.label, "Welcome")
    }

    func testNavigationToSettings() throws {
        app.menuItems["Preferences…"].click()
        let settingsWindow = app.windows["SettingsWindow"]
        XCTAssertTrue(settingsWindow.waitForExistence(timeout: 2))
    }
}

Related Skills

  • swiftui-view-generator
  • desktop-ui-testing process

Signals

GitHub stars
2k
Forks
112
Last commit
Sep 2026
Advanced
Item type
skill
Key
xctest-ui-test-generator
Source
github.com/a5c-ai/babysitter