Run Feature Test
run_feature_testRun a mobile feature test in a single call: execute UI actions with network mocking and assertions, then compile results, eliminating multi-step orchestration.
Instructions
Execute a declarative feature test in ONE tool call: setup flows → start recording → UI actions → network assertions → stop & compile → teardown. Replaces 8–15 AI-orchestrated tool calls per run with a single deterministic lifecycle. Accepts an inline FeatureTestSpec or a path to a .yaml/.json spec file.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| env | No | Env vars passed to every setup/teardown flow as Maestro -e KEY=VALUE | |
| spec | Yes | Inline FeatureTestSpec object or absolute path to a .yaml/.json spec file | |
| flowsDir | No | Directory for setup/teardown flow YAML files | |
| platform | No | Target platform (default: ios) | |
| settleMs | No | Wait after the last action before running assertions (default: 5000) | |
| stubsDir | No | Optional WireMock stubs root directory used by setup/teardown flows | |
| setupTimeoutMs | No | Max wall-clock time for all setup flows combined (default: 120000) | |
| actionTimeoutMs | No | Max wall-clock time for the entire actions phase (default: 30000) | |
| driverCooldownMs | No | Unified iOS driver cooldown (default: 5000). Applied in two places: (1) sleep between consecutive setup flows, (2) cooldown after the XCTest driver is uninstalled inside start_recording_session / run_flow (only hits that path when the driver health probe fails). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| error | No | Populated when the test aborted before completion | |
| mocks | No | ||
| setup | Yes | ||
| passed | Yes | True only if setup, all actions, and every assertion passed | |
| actions | Yes | ||
| teardown | Yes | ||
| assertions | Yes | ||
| durationMs | Yes |