diff --git a/docs/getting-started-with-xcuitest.md b/docs/getting-started-with-xcuitest.md index db6f8d552..1fdfde019 100644 --- a/docs/getting-started-with-xcuitest.md +++ b/docs/getting-started-with-xcuitest.md @@ -1,8 +1,8 @@ --- id: getting-started-with-xcui-testing -title: XCUI Testing on TestMu AI -sidebar_label: XCUI Testing -description: Master XCUITest automation with TestMu AI! Learn to run scripts, utilize capabilities, and execute tests on real iOS devices effortlessly. Get started now! +title: How to Run XCUITest on TestMu AI +sidebar_label: "Run First Test" +description: Run XCUITest automation for your iOS apps across 5000+ real devices and OS combinations on TestMu AI, from app upload to viewing results. keywords: - xcuitest - app test automation @@ -15,14 +15,15 @@ url: https://www.testmuai.com/support/docs/getting-started-with-xcuitest/ site_name: TestMu AI slug: getting-started-with-xcuitest/ canonical: https://www.testmuai.com/support/docs/getting-started-with-xcuitest/ +toc_max_heading_level: 2 --- import CodeBlock from '@theme/CodeBlock'; import {YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY} from "@site/src/component/keys"; -import RealDeviceTag from '../src/component/realDevice'; -import VirtualDeviceTag from '../src/component/virtualDevice'; import BrandName, { BRAND_URL } from '@site/src/component/BrandName'; import CookieTrackingLogin from '@site/src/component/CookieTracking'; +import RealDeviceTag from '@site/src/component/realDevice'; +import VirtualDeviceTag from '@site/src/component/virtualDevice'; import VerifiedTag from '@site/src/component/verifiedTag'; @@ -43,7 +44,7 @@ import VerifiedTag from '@site/src/component/verifiedTag'; },{ "@type": "ListItem", "position": 3, - "name": "XCUI Testing on TestMu AI", + "name": "How to Run XCUITest on TestMu AI", "item": `${BRAND_URL}/support/docs/getting-started-with-xcuitest/` }] }) @@ -61,7 +62,7 @@ import VerifiedTag from '@site/src/component/verifiedTag'; "@type": "WebPage", "@id": "https://www.testmuai.com/support/docs/getting-started-with-xcuitest/" }, - "headline": "XCUI Testing on TestMu AI", + "headline": "How to Run XCUITest on TestMu AI", "description": "Master XCUITest automation with TestMu AI! Learn to run scripts, utilize capabilities, and execute tests on real iOS devices effortlessly. Get started now!", "url": "https://www.testmuai.com/support/docs/getting-started-with-xcuitest/", "image": { @@ -222,7 +223,11 @@ import VerifiedTag from '@site/src/component/verifiedTag'; } ]) }} /> + + +Running XCUITest on TestMu AI executes Apple's XCTest-based UI automation for your iOS apps across 50,000+ real devices and OS combinations. Upload your app and test bundle, configure capabilities, trigger the run, and review results on the TestMu AI dashboard. + Developed by Apple, XCUITest is a UI testing framework for iOS applications, commonly used for End-to-End (E2E) testing of app user flows. It is built on top of XCTest, an integrated test framework in Apple's Xcode IDE. lets you perform automated app testing of your iOS apps using XCUITest across 50,000+ real devices and OS combinations. ## Prerequisites @@ -339,8 +344,6 @@ Take note of the base64 encoded authentication which needs to be added in the * Before running the command, replace `BASIC_AUTH_TOKEN`, `APP_ID`, and `TEST_SUITE_ID` with your actual LambdaTest credentials and resource IDs obtained from the above curl commands. ::: - - @@ -348,6 +351,8 @@ Take note of the base64 encoded authentication which needs to be added in the + +
@@ -373,8 +378,10 @@ curl --location --request POST 'https://mobile-api.lambdatest.com/framework/v1/x + +
- + ```bash curl --location --request POST "https://mobile-api.lambdatest.com/framework/v1/xcui/build" ^ @@ -421,7 +428,7 @@ curl --location --request POST 'https://mobile-api.lambdatest.com/framework/v1/x
- + ```bash curl --location --request POST "https://mobile-api.lambdatest.com/framework/v1/xcui/build" ^ @@ -453,8 +460,6 @@ You can run tests in parallel on multiple devices by passing the device name in * Before running the command, replace `BASIC_AUTH_TOKEN`, `APP_ID`, and `TEST_SUITE_ID` with your actual LambdaTest credentials and resource IDs obtained from the above curl commands. ::: - - @@ -462,6 +467,8 @@ You can run tests in parallel on multiple devices by passing the device name in + +
@@ -487,8 +494,10 @@ curl --location --request POST 'https://mobile-api.lambdatest.com/framework/v1/x + +
- + ```bash curl --location --request POST "https://mobile-api.lambdatest.com/framework/v1/xcui/build" ^ @@ -535,7 +544,7 @@ curl --location --request POST 'https://mobile-api.lambdatest.com/framework/v1/x
- + ```bash curl --location --request POST "https://mobile-api.lambdatest.com/framework/v1/xcui/build" ^ @@ -552,52 +561,6 @@ curl --location --request POST "https://mobile-api.lambdatest.com/framework/v1/x - -## Using the XCUITest Agent Skill with TestMu AI -*** - -The [xcuitest-skill](https://github.com/LambdaTest/agent-skills/tree/main/xcuitest-skill) is a part of [TestMu AI Skills](https://github.com/LambdaTest/agent-skills/) that guide AI coding assistants in generating production-ready test automation. - -The xcuitest-skill package includes: - - - -``` -xcuitest-skill/ -├── SKILL.md -└── reference/ - ├── playbook.md - └── advanced-patterns.md -``` - -It provides structured guidance for: - -* Project structure and setup -* Dependency configuration -* Local execution -* TestMu AI cloud execution -* Debugging patterns -* CI/CD integration - - -### Installing XCUITest Agent Skill -*** - -Install a XCUITest Agent Skill using the command below: - - - -``` -# Clone the repo and copy the skill you need -git clone https://github.com/LambdaTest/agent-skills.git -cp -r agent-skills/xcuitest-skill .claude/skills/ - -# Or for Cursor / Copilot -cp -r agent-skills/xcuitest-skill .cursor/skills/ -``` - -**Note**: If you prefer installing all available framework skills instead of only xcuitest-skill, clone the repository directly into your tool's skills directory (for example, .claude/skills/, .cursor/skills/, .gemini/skills/, or .agent/skills/). - \ No newline at end of file + diff --git a/docs/ios-ipa-files-xcui.md b/docs/ios-ipa-files-xcui.md index 6e951f834..0cb07d651 100644 --- a/docs/ios-ipa-files-xcui.md +++ b/docs/ios-ipa-files-xcui.md @@ -1,7 +1,7 @@ --- id: ios-ipa-files-xcui -title: Creating iOS Applications -sidebar_label: Creating iOS Applications +title: How to Create iOS IPA Files on TestMu AI +sidebar_label: "Creating iOS Applications" description: Effortlessly test iOS IPA files with XCUi on TestMu AI. Ensure your apps run smoothly on all iOS devices with comprehensive testing support. keywords: - xcuitest @@ -18,6 +18,7 @@ url: https://www.testmuai.com/support/docs/ios-ipa-files-xcui/ site_name: TestMu AI slug: ios-ipa-files-xcui/ canonical: https://www.testmuai.com/support/docs/ios-ipa-files-xcui/ +toc_max_heading_level: 2 --- import CodeBlock from '@theme/CodeBlock'; @@ -42,7 +43,7 @@ import BrandName, { BRAND_URL } from '@site/src/component/BrandName'; },{ "@type": "ListItem", "position": 3, - "name": "Creating iOS apps", + "name": "How to Create iOS IPA Files on TestMu AI", "item": `${BRAND_URL}/support/docs/ios-ipa-files-xcui/` }] }) @@ -60,7 +61,7 @@ import BrandName, { BRAND_URL } from '@site/src/component/BrandName'; "@type": "WebPage", "@id": "https://www.testmuai.com/support/docs/ios-ipa-files-xcui/" }, - "headline": "Creating iOS Applications", + "headline": "How to Create iOS IPA Files on TestMu AI", "description": "Effortlessly test iOS IPA files with XCUi on TestMu AI. Ensure your apps run smoothly on all iOS devices with comprehensive testing support.", "url": "https://www.testmuai.com/support/docs/ios-ipa-files-xcui/", "image": { @@ -140,7 +141,7 @@ import BrandName, { BRAND_URL } from '@site/src/component/BrandName'; ]) }} /> -This document outlines the process of creating and testing iOS apps using Xcode. It covers two methods for creating.ipa files for testing: directly creating the.ipa file or creating an.app bundle and converting it into an.ipa file. The first method involves creating a.ipa file using various export methods, such as Ad Hoc, Enterprise, or Development. The second method involves creating an.app bundle and converting it into an.ipa file. +Creating iOS IPA files for XCUITest on TestMu AI uses Xcode to archive and export your app. Build the .ipa through Ad Hoc, Enterprise, or Development export methods, or generate a .app bundle and convert it into an uploadable .ipa. ## Step 1: Create .ipa files for Testing @@ -241,7 +242,7 @@ This process will overwrite the **Build settings** at the Project Level to the g
  • - XCUI Testing + How to Create iOS IPA Files on TestMu AI
  • diff --git a/docs/regular-expression-xcui.md b/docs/regular-expression-xcui.md index eb39f26da..004114d37 100644 --- a/docs/regular-expression-xcui.md +++ b/docs/regular-expression-xcui.md @@ -1,9 +1,9 @@ --- id: regular-expression-xcui -title: Regular Expression - XCUI +title: How to Use Regular Expressions for XCUI on TestMu AI # hide_title: true -sidebar_label: Regular Expression -description: There may be instances when the device you chose for a test on TestMu AI is not available. In these scenarios, REGEX will help you widen the search request for devices to run the test on. +sidebar_label: "Regular Expression" +description: Use REGEX in your device capabilities on TestMu AI to widen the device search when the exact iPhone or iPad you picked is unavailable. keywords: - regular expression testmu ai - regular expression app automation @@ -11,10 +11,11 @@ url: https://www.testmuai.com/support/docs/regular-expression-xcui/ site_name: TestMu AI slug: regular-expression-xcui/ canonical: https://www.testmuai.com/support/docs/regular-expression-xcui/ +toc_max_heading_level: 2 --- -import RealDeviceTag from '../src/component/realDevice'; import BrandName, { BRAND_URL } from '@site/src/component/BrandName'; +import RealDeviceTag from '@site/src/component/realDevice'; import VerifiedTag from '@site/src/component/verifiedTag'; @@ -35,7 +36,7 @@ import VerifiedTag from '@site/src/component/verifiedTag'; },{ "@type": "ListItem", "position": 3, - "name": "App Automation: Regular Expression", + "name": "How to Use Regular Expressions for XCUI on TestMu AI", "item": `${BRAND_URL}/support/docs/regular-expression-xcui/` }] }) @@ -53,7 +54,7 @@ import VerifiedTag from '@site/src/component/verifiedTag'; "@type": "WebPage", "@id": "https://www.testmuai.com/support/docs/regular-expression-xcui/" }, - "headline": "Regular Expression - XCUI", + "headline": "How to Use Regular Expressions for XCUI on TestMu AI", "description": "There may be instances when the device you chose for a test on TestMu AI is not available. In these scenarios, REGEX will help you widen the search request for devices to run the test on.", "url": "https://www.testmuai.com/support/docs/regular-expression-xcui/", "image": { @@ -114,7 +115,11 @@ import VerifiedTag from '@site/src/component/verifiedTag'; "dateModified": "2026-09-09T19:10:37+05:30" }) }} /> + + +Using regular expressions for XCUI device selection on TestMu AI lets you match any available device with a pattern instead of one exact model, so tests still run when your chosen iPhone or iPad is busy, widening the device search. + Regular Expression or REGEX is widely used to make searching/find characters in a string. When you run a test on using a specific device, there may be scenarios, in which the particular device that you selected isn’t available. In these scenarios, REGEX will help you widen the search request for devices to run the test on. @@ -132,7 +137,6 @@ Usual way to pass the `deviceName` and `platformVersion` looks like this:
    ``` Passing `deviceName` using REGEX:
    - ```java diff --git a/docs/sharding-xcui.md b/docs/sharding-xcui.md index c704647df..2202e4ff1 100644 --- a/docs/sharding-xcui.md +++ b/docs/sharding-xcui.md @@ -1,8 +1,8 @@ --- id: sharding-xcui -title: Sharding for XCUI -sidebar_label: Sharding for XCUI -description: This document will cover how to execute XCUI Tests on real devices with HyperExecute. Before starting, please make sure you have App Automation and HyperExecute Cloud plans on your account. +title: How to Shard XCUI Tests on TestMu AI +sidebar_label: "Sharding" +description: Speed up XCUI tests on TestMu AI by splitting them into shards that run in parallel on real devices with HyperExecute orchestration. keywords: - sharding - XCUIT @@ -17,16 +17,17 @@ url: https://www.testmuai.com/support/docs/sharding-rd-hyperexec/ site_name: TestMu AI slug: sharding-rd-hyperexec/ canonical: https://www.testmuai.com/support/docs/sharding-rd-hyperexec/ +toc_max_heading_level: 2 --- import CodeBlock from '@theme/CodeBlock'; import {YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY} from "@site/src/component/keys"; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -import RealDeviceTag from '../src/component/realDevice'; -import VirtualDeviceTag from '../src/component/virtualDevice'; import BrandName, { BRAND_URL } from '@site/src/component/BrandName'; import { CookieTrackingSignup } from '@site/src/component/CookieTracking'; +import RealDeviceTag from '@site/src/component/realDevice'; +import VirtualDeviceTag from '@site/src/component/virtualDevice'; import VerifiedTag from '@site/src/component/verifiedTag'; @@ -47,7 +48,7 @@ import VerifiedTag from '@site/src/component/verifiedTag'; },{ "@type": "ListItem", "position": 3, - "name": "Sharding in XCUIT", + "name": "How to Shard XCUI Tests on TestMu AI", "item": `${BRAND_URL}/support/docs/sharding-rd-hyperexec/` }] }) @@ -65,7 +66,7 @@ import VerifiedTag from '@site/src/component/verifiedTag'; "@type": "WebPage", "@id": "https://www.testmuai.com/support/docs/sharding-rd-hyperexec/" }, - "headline": "Sharding for XCUI", + "headline": "How to Shard XCUI Tests on TestMu AI", "description": "This document will cover how to execute XCUI Tests on real devices with HyperExecute. Before starting, please make sure you have App Automation and HyperExecute Cloud plans on your account.", "url": "https://www.testmuai.com/support/docs/sharding-rd-hyperexec/", "image": { @@ -178,9 +179,10 @@ import VerifiedTag from '@site/src/component/verifiedTag'; /> -Generally the XCUI tests are run in sequence which is a time taking process. This document explains how you can speed up this process by splitting the tests into **shards**. We can divide the various tests into shards which can run parallelly and save time while running various XCUI tests. -This document will cover how to execute **XCUI Tests** on real devices with **HyperExecute**. HyperExecute is a smart test orchestration platform to run end-to-end tests at the fastest speed possible. HyperExecute is configured using a YAML file. +Sharding XCUI tests on TestMu AI splits a sequential suite into shards that run in parallel across real devices, cutting execution time. HyperExecute, configured through a YAML file, orchestrates the shards so your end-to-end iOS tests finish much faster overall. + +**HyperExecute** is a smart test orchestration platform that runs XCUI end-to-end tests on real devices at the fastest speed possible, configured using a YAML file. :::tip Note You can learn more about the HyperExecute portal and UI by going through our [Guided Walkthrough](/support/docs/hyperexecute-guided-walkthrough/) page. It contains all the relevant information that you need to optimise your testing process with HyperExecute. @@ -306,11 +308,11 @@ Response of above cURL will be a **JSON** object containing the `App URL` of the Refer to the sample `.yaml` file here - - + +
    @@ -375,6 +377,8 @@ framework: + +
    @@ -475,7 +479,6 @@ chmod u+x ``` You can refer to this example and screenshot below: - ``` @@ -500,7 +503,7 @@ Here's an example of the same. -```java +```yaml filters: attributes: - type: className @@ -511,7 +514,7 @@ filters: This example will run only the 2 classes & one test as mentioned from the TestSuite. ## XCTestPlan in Sharding -To implement the XCTestPlan in Sharding, add the `xctestplan` flag along with `app` and `testSuite` in the [framework](/support/docs/hyperexecute-yaml-version0.2/#framework) flag as shown below: +To implement the XCTestPlan in Sharding, add the `xctestplan` flag along with `app` and `testSuite` in the [framework](/support/docs/deep-dive-into-hyperexecute-yaml/#hyperexecute-yaml-v02-framework-flags-and-discovery-config) flag as shown below: @@ -526,7 +529,46 @@ framework: > Refer the documentation to learn how to use [XCTestPlan feature](/support/docs/xctestplan/). +## Filters for XCUI Tests + +Usually, all the test cases of your XCUI test suite are executed, but there is a way to filter these. You can specify some selected classes or tests, which provides you with options to filter the test cases which you want to execute. + +To filter the test cases, you just need to pass the suitable parameters in ’s REST API request. Refer to the table below to understand how to use various filters provided by . + +Given below is the REST API endpoint: + + + +```bash +curl --location --request POST 'https://mobile-api.lambdatest.com/framework/v1/xcui/build' \ +--header 'Authorization: Basic BASIC_AUTH_TOKEN' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "app" : "APP_ID", + "testSuite": "TEST_SUITE_ID", + "device" : ["iPhone 11-14"], + "video" : true, + "queueTimeout": 10800, + "idleTimeout": 150, + "devicelog": true, + "network": false, + "build" : "Proverbial-XCUITest" +}' +``` + +| Parameters | Description | Values | Datatype | +|----------- | ----------- | ------ | -------- | +| `only-testing` Real & Virtual| Allows the user to run only those tests/classes provided in the list | Values can be of the following format: className or className/testName. E.g. `["Class1/Test1", "Class2"]` | Array | +| `skip-testing`Real & Virtual| Allows the user to run all the tests/classes except the ones provided in the list | Values can be of the following format: className or className/testName. E.g. `["Class1/Test1", "Class2"]` | Array | + +:::info Note +You can not use the following filters simultaneously. +- `only-testing` and `skip-testing` +- `xctestplan` and `only-testing`/`skip-testing` +::: + + ## Additional Links - [Advanced Configuration for Capabilities](/support/docs/desired-capabilities-in-appium/) - [How to test locally hosted apps](/support/docs/testing-locally-hosted-pages/) -- [How to integrate with CI/CD](/support/docs/integrations-with-ci-cd-tools/) \ No newline at end of file +- [How to integrate with CI/CD](/support/docs/integrations-with-ci-cd-tools/) diff --git a/docs/speedup-xcui.md b/docs/speedup-xcui.md deleted file mode 100644 index 163bfbce5..000000000 --- a/docs/speedup-xcui.md +++ /dev/null @@ -1,159 +0,0 @@ ---- -id: speedup-xcui -title: Filters for XCUI Tests -sidebar_label: Filters for XCUI Tests -description: Filter XCUI test cases with TestMu AI's REST API. Run specific tests or skip others using customizable parameters. Streamline your testing process effortlessly. -keywords: - - XCUI test filters - - app test automation - - XCUI - - filter - - testmu ai - - framework on testmu ai - - testing in XCUI - - XCUI testing - - real devices -url: https://www.testmuai.com/support/docs/speedup-xcui/ -site_name: TestMu AI -slug: speedup-xcui/ -canonical: https://www.testmuai.com/support/docs/speedup-xcui/ ---- - -import CodeBlock from '@theme/CodeBlock'; -import {YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY} from "@site/src/component/keys"; - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -import RealDeviceTag from '../src/component/realDevice'; -import VirtualDeviceTag from '../src/component/virtualDevice'; -import BrandName, { BRAND_URL } from '@site/src/component/BrandName'; -import VerifiedTag from '@site/src/component/verifiedTag'; - - - - - - - + +# How to Run XCUITest With Agent Skills on TestMu AI +--- + + +Running XCUITest with Agent Skills on TestMu AI lets your AI coding assistant generate production-ready iOS UI automation from natural-language prompts, then run those tests on real devices while following proper project structure, Xcode build settings, and cloud execution patterns. + +Instead of manually wiring up your XCUITest project, use **Agent Skills** to let your AI coding assistant generate production-ready iOS UI automation for you. The [xcuitest-skill](https://github.com/LambdaTest/agent-skills/tree/main/xcuitest-skill) is part of [TestMu AI Agent Skills](https://github.com/LambdaTest/agent-skills/) - structured packages that teach AI assistants how to write production-grade test code and run it on real devices. + +## What Agent Skills Are +--- + +Self-contained packages of instructions, code patterns, and configurations for a specific testing framework. + +Once installed, your AI assistant works like a senior iOS QA automation architect with knowledge of: + +- Proper XCUITest project structure in Swift and Objective-C +- Correct Xcode build settings and test target configuration +- Both local and TestMu AI real-device cloud execution patterns +- Common pitfalls and debugging approaches +- CI/CD integration with GitHub Actions + +## Prerequisites +--- + +Make sure you have the following set up before you start. + +1. [Create a TestMu AI account](https://www.testmuai.com/register/) if you don't have one. +2. Get your **Username** and **Access Key** from the [TestMu AI Dashboard](https://www.testmuai.com/login/?redirectTo=https://accounts.lambdatest.com/dashboard). +3. Install an AI coding assistant: [Claude Code](https://claude.ai/code), [GitHub Copilot](https://github.com/features/copilot), [Cursor](https://cursor.sh/), [Gemini CLI](https://github.com/google-gemini/gemini-cli), or any compatible tool. + +## Step 1: Install the XCUITest Agent Skill +--- + +Clone the repository and copy the XCUITest skill into your AI tool's skills directory. + +```bash +git clone https://github.com/LambdaTest/agent-skills.git + +# For Claude Code +cp -r agent-skills/xcuitest-skill .claude/skills/ + +# For Cursor +cp -r agent-skills/xcuitest-skill .cursor/skills/ + +# For GitHub Copilot +cp -r agent-skills/xcuitest-skill .github/skills/ + +# For Gemini CLI +cp -r agent-skills/xcuitest-skill .gemini/skills/ +``` + +:::tip +Install **all available framework skills** at once by cloning the repository directly into your tool's skills directory (e.g., `.claude/skills/`, `.cursor/skills/`). +::: + +## Step 2: Set Your Credentials +--- + +Add your TestMu AI credentials as environment variables so the generated tests can authenticate with the real device cloud. + +Visit the [TestMu AI Dashboard](https://www.testmuai.com/login/?redirectTo=https://accounts.lambdatest.com/dashboard), navigate to the left sidebar, and select **Credentials**. Copy your **Username** and **Access Key**, then run: + +```bash +export LT_USERNAME="YOUR_LAMBDATEST_USERNAME" +export LT_ACCESS_KEY="YOUR_LAMBDATEST_ACCESS_KEY" +``` + +## Step 3: Run Your First Test +--- + +Ask your AI assistant to write tests in natural language. + +``` +"Write an XCUITest for my iOS app's login screen and run it on TestMu AI real devices" +``` + +``` +"Set up an XCUITest project in Swift with a table view test and run it on TestMu AI" +``` + +``` +"Run my XCUITest suite across an iPhone 15 and an iPhone 14 in parallel on TestMu AI, tag the build as 'release-v1.0'" +``` + +The Agent Skill automatically handles: + +1. **Project setup** - Creates the right Xcode test target, build settings, and scheme configuration +2. **Language detection** - Maps your request to Swift or Objective-C +3. **Execution target** - Configures local or TestMu AI real-device execution based on your request +4. **Best practices** - Uses XCUITest idioms (XCUIElement queries, XCUIElementQuery, expectations) for reliable synchronization + +## What's Included in the XCUITest Skill +--- + +A breakdown of everything the skill package contains. + +``` +xcuitest-skill/ +├── SKILL.md +└── reference/ + ├── playbook.md + └── advanced-patterns.md +``` + +| Section | Details | +|---------|---------| +| **Project Setup** | Xcode test target, build settings, scheme configuration | +| **Core Patterns** | Complete, runnable code examples with best practices | +| **Cloud Integration** | TestMu AI real-device capabilities and app-upload configuration | +| **CI/CD Integration** | GitHub Actions workflows with reporting and parallel execution | +| **Debugging Guide** | Common build and test errors mapped to solutions | +| **Best Practices** | Actionable recommendations for production iOS test code | + +## Supported AI Tools +--- + +Pick the tool you use and install the skill to the corresponding path. + +| Tool | Type | Installation Path | +|------|------|-------------------| +| Claude Code | CLI | `.claude/skills/` | +| GitHub Copilot | Extension | `.github/skills/` | +| Cursor | IDE | `.cursor/skills/` | +| Gemini CLI | CLI | `.gemini/skills/` | +| Codex CLI | CLI | `.codex/skills/` | +| OpenCode | CLI | `.opencode/skills/` | +| Claude.ai | Web | Settings > Features > Skills | + +## Next Steps +--- + +Continue with these related guides: + +- [Run Your First XCUITest](/support/docs/getting-started-with-xcuitest/) +- [XCUITest Supported Capabilities](/support/docs/xcui-supported-capabilities/) +- [Creating iOS Applications](/support/docs/ios-ipa-files-xcui/) + + diff --git a/sidebars-unified.js b/sidebars-unified.js index db3d087fd..1330d851d 100644 --- a/sidebars-unified.js +++ b/sidebars-unified.js @@ -43,8 +43,8 @@ const docsSidebar = [ { type: 'category', label: 'App Automation', collapsible: true, collapsed: true, items: [ - { type: 'link', label: 'Appium Testing', href: '/docs/getting-started-with-appium-testing/' }, - { type: 'link', label: 'Espresso Testing', href: '/docs/getting-started-with-espresso-testing/' }, + { type: 'category', label: 'Appium Testing', collapsible: true, collapsed: true, items: items(s.AppiumTestingSidebar) }, + { type: 'category', label: 'Espresso Testing', collapsible: true, collapsed: true, items: items(s.EspressoTestingSidebar) }, { type: 'link', label: 'XCUI Testing', href: '/docs/getting-started-with-xcuitest/' }, { type: 'link', label: 'Mobilewright Testing', href: '/docs/mobilewright-overview/' }, { type: 'link', label: 'Flutter Testing', href: '/docs/appium-flutter-integration/' }, @@ -98,7 +98,6 @@ const BiDiTestingSidebar = [backToDocs, { type: 'doc', id: 'run-tests-with-webdr // App Automation const EspressoTestingSidebar = dedicated(s.EspressoTestingSidebar); -const XCUITestingSidebar = dedicated(s.XCUITestingSidebar); const FlutterTestingSidebar = dedicated(s.FlutterTestingSidebar); const MobilewrightTestingSidebar = dedicated(s.MobilewrightTestingSidebar); const VirtualDevicesSidebar = dedicated(s.EmuSimuSidebar); @@ -161,6 +160,10 @@ const SettingsAndSecuritySidebar = [ }, ]; +// Dedicated sidebar for XCUI Testing. The XCUI Testing entry in docsSidebar is a +// link (above), so these docs live ONLY here — Docusaurus displays this dedicated +// sidebar whenever a reader is inside XCUI Testing. +const XCUITestingSidebar = [backToDocs, ...items(s.XCUITestingSidebar)]; // Appium Testing is a link in docsSidebar (above), so its docs live ONLY in this // dedicated sidebar — Docusaurus displays it (with the back-to-docs link) // whenever a reader is inside an Appium Testing page. diff --git a/sidebars.js b/sidebars.js index bd414fb3b..83ea19dea 100644 --- a/sidebars.js +++ b/sidebars.js @@ -3245,7 +3245,7 @@ module.exports = { ], ], - XCUITestingSidebar: [ + XCUITestingSidebar: [ { type: 'link', label: 'Back', @@ -3255,60 +3255,26 @@ module.exports = { }, }, [ - { - type: "doc", - label: "Getting Started with XCUI Testing", - id: "getting-started-with-xcui-testing", - }, - { - type: "doc", - label: "Supported Capabilities", - id: "xcui-supported-capabilities", - }, - { - type: "doc", - label: "RegEx in XCUI", - id: "regular-expression-xcui", - }, - { - type: "doc", - label: "Supported Locales", - id: "supported-locales-xcui", - }, - { - type: "doc", - label: "Creating iOS Applications", - id: "ios-ipa-files-xcui", - }, { type: "category", - collapsed: true, - label: "Speedup XCUI Tests", - items: ["sharding-xcui", "speedup-xcui"], - }, - { - type: "doc", - label: "XCTestPlan", - id: "xctestplan", - }, - { - type: "doc", - label: "Xml Report", - id: "xcui-xml-report", - }, - { - type: "doc", - label: "XCResult", - id: "xcresult", - }, - { - type: "doc", - label: "SmartUI Visual Regression", - id: "xcui-visual-regression", + collapsed: false, + label: "Getting Started", + className: "menu-bold", + items: [ + "getting-started-with-xcui-testing", + "xcuitest-agent-skills", + "xcui-supported-capabilities", + "xcui-xml-report", + "xctestplan", + ], }, + { type: "doc", id: "regular-expression-xcui", className: "menu-bold" }, + { type: "doc", id: "supported-locales-xcui", className: "menu-bold" }, + { type: "doc", id: "ios-ipa-files-xcui", className: "menu-bold" }, + { type: "doc", id: "sharding-xcui", className: "menu-bold" }, ], ], - + FlutterTestingSidebar: [ { type: "link", diff --git a/src/css/custom.css b/src/css/custom.css index 03a763237..d51cf9ce1 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -239,10 +239,10 @@ body { position: relative; } -/* Bold sidebar items via the `menu-bold` class, applied to specific sidebar - entries (Test Manager items and the Puppeteer Testing category labels — see - sidebars.js). Covers standalone docs AND collapsible category labels, so no - global sidebar rule is needed and other product sidebars are unaffected. */ +/* Bold sidebar items via the `menu-bold` class, applied to top-level + TestManagerSidebar and XCUITestingSidebar items (see sidebars.js). + Covers standalone docs AND collapsible category labels, so no global + sidebar rule is needed and other product sidebars are unaffected. */ .menu-bold > .menu__link, .menu-bold > .menu__list-item-collapsible > .menu__link { font-weight: 600;