Skip to main content

dd-sdk-iosrunning-tests

Use when asked to run tests in the dd-sdk-ios project — whether a full module suite, a specific test class, or a single test method. Use when choosing between make, xcodebuild, or Xcode MCP for running iOS/tvOS/visionOS tests.

Zur Installation springen

Quellinformationen

Repository
DataDog/dd-sdk-ios
Letzte Quellaktivität
13. März 2026 um 15:59
Erkannte Sprache von SKILL.md
Englisch
Sterne
286
Forks
175

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
dd-sdk-ios:running-tests
description
Use when asked to run tests in the dd-sdk-ios project — whether a full module suite, a specific test class, or a single test method. Use when choosing between make, xcodebuild, or Xcode MCP for running iOS/tvOS/visionOS tests.
# Running Tests in dd-sdk-ios ## Two Approaches ### 1. Makefile — CI workflows, full module suites Use `make` to replicate CI exactly. Always prefer this for running a full module or all modules. **Before running:** verify available simulators and pick an appropriate device name: ```bash xcrun simctl list devices available | grep -E "iPhone|Apple TV" ``` | Goal | Command | |------|---------| | All iOS unit tests | `make test-ios-all` | | One module | `make test-ios SCHEME="<Scheme>"` | | One module with specific device | `make test-ios SCHEME="<Scheme>" DEVICE="<Device>"` | | All tvOS unit tests | `make test-tvos-all` | | UI / integration tests | `make ui-test TEST_PLAN="<Plan>"` | | Session Replay snapshots | `make sr-snapshot-test` | **Default devices** (authoritative values from Makefile): ```bash grep "DEFAULT_" Makefile ``` Always pass `DEVICE=` explicitly if the default simulator is not installed locally. Check `xcrun simctl list devices available` first. **Module scheme names:** Always read the `Makefile` to get the authoritative list — it changes as modules are added or renamed: ```bash grep "test-ios-all" Makefile -A 20 # shows all iOS schemes used in CI ``` ### 2. Xcode MCP — selective, fast, single test or class Requires **Xcode 26.3+** with the Xcode MCP server enabled in Claude Code settings. **Before using Xcode MCP**, verify the setup: 1. Check Xcode version: `xcodebuild -version` - If Xcode < 26.3 → ask the user to upgrade Xcode - If Xcode ≥ 26.3 → check that `XcodeListWindows` is available 2. If `XcodeListWindows` is unavailable → ask the user to enable the Xcode MCP server in Xcode settings `RunSomeTests` is limited to targets in the **currently active Xcode scheme**. The MCP has no tool to switch schemes — that must be done manually in Xcode. **Get the tabIdentifier** (identifies the open Xcode workspace window): ``` XcodeListWindows() # → tabIdentifier e.g. "windowtab1" ``` **Check available targets first:** ``` GetTestList(tabIdentifier: <tabIdentifier>) # → lists targets in the active scheme only ``` **If the test is in the active scheme**, run it directly: ``` RunSomeTests( tabIdentifier: <tabIdentifier>, tests: [{ targetName: "<targetName from GetTestList>", testIdentifier: "<TestClass>/<testMethod>()" }] ) ``` **If the test is NOT in the active scheme**, use `xcodebuild -only-testing`: ```bash xcodebuild test \ -workspace Datadog.xcworkspace \ -scheme "<Module> <Platform>" \ -destination 'platform=<Platform> Simulator,name=<Device>' \ -only-testing:<TargetName>/<TestClass>/<testMethod> ``` To find which module owns a test: ``` XcodeGrep(tabIdentifier: <tabIdentifier>, pattern: "func <testName>", outputMode: "filesWithMatches") # path reveals the module: DatadogInternal/Tests/... → scheme "DatadogInternal iOS" ``` ## Decision Guide ``` Need to run tests? ├── Full module or CI replication? │ └── make test-ios SCHEME="<Module> iOS" DEVICE="<Device>" └── Specific class or method? ├── Test is in the active Xcode scheme? (check GetTestList) │ └── RunSomeTests └── Test is in a different scheme? └── xcodebuild -only-testing (or ask user to switch scheme in Xcode) ``` ## Common Mistakes | Mistake | Fix | |---------|-----| | Assuming `RunSomeTests` works for any module | It only sees targets in the active Xcode scheme — MCP cannot switch schemes | | Not knowing which scheme owns the test | Grep for the function — file path reveals the module | | Running full module when only one test needed | Use `RunSomeTests` or `xcodebuild -only-testing` | | Running integration tests under feature module scheme | Integration tests use target `DatadogIntegrationTests iOS/tvOS` |
Auf GitHub ansehen