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.

インストールへ移動

ソース情報

リポジトリ
DataDog/dd-sdk-ios
ソースの最終更新活動
2026年3月13日 15:59
検出された SKILL.md の言語
英語
スター
286
フォーク
175

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
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` |
GitHubで見る