AgentSkillsCN

xctest-ui-test-generator

为 macOS 应用程序生成具备无障碍标识符与页面对象模式的 XCTest UI 测试。

SKILL.md
--- frontmatter
name: xctest-ui-test-generator
description: Generate XCTest UI tests for macOS applications with accessibility identifiers and page object patterns
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
tags: [macos, xctest, uitesting, swift, testing]

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

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

Generated Test Class

swift
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