Babysitter xctest-ui-test-generator
Generate XCTest UI tests for macOS applications with accessibility identifiers and page object patterns
install
source · Clone the upstream repo
git clone https://github.com/a5c-ai/babysitter
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/a5c-ai/babysitter "$T" && mkdir -p ~/.claude/skills && cp -r "$T/library/specializations/desktop-development/skills/xctest-ui-test-generator" ~/.claude/skills/a5c-ai-babysitter-xctest-ui-test-generator && rm -rf "$T"
manifest:
library/specializations/desktop-development/skills/xctest-ui-test-generator/SKILL.mdsource content
xctest-ui-test-generator
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
processdesktop-ui-testing