E2E Test Commands
Norrix can run Maestro flows against completed virtual-device builds on Norrix cloud runners.
E2E tests are available to Enterprise organizations.
norrix test
Run Maestro E2E tests against a completed build.
Synopsis
norrix test [platform] [options]Prerequisites
E2E tests need an artifact that can install on a virtual device:
- iOS: build with
norrix build ios --simulator - Android: build with
norrix build android --emulatoror produce an APK
Your Maestro flows must live in a local directory, usually .maestro/ or a project-specific folder such as apps/mobile-e2e/src/flows.
Arguments
| Argument | Description |
|---|---|
platform | Target platform: ios or android |
If platform is omitted, the CLI can prompt you to select from available testable builds.
Options
| Flag | Description |
|---|---|
-b, --build <buildId> | Build ID to test. Required with --non-interactive |
--flows-dir <path> | Path to the Maestro flows directory (default: .maestro) |
--flows <flows> | Comma-delimited flow files, relative to the flows directory (default: all flows) |
--device-model <model> | Preferred iOS simulator model for the E2E runner |
--device-os <os> | Preferred iOS simulator runtime for the E2E runner |
--wait | Wait for the E2E run to finish |
--timeout-minutes <minutes> | Maximum time to wait for completion (default: 60) |
--poll-interval <seconds> | Polling interval while waiting for completion (default: 20) |
--junit-output <dir> | Download JUnit XML result files into this directory. Implies --wait |
--org <orgId> | Target organization ID |
-n, --non-interactive | Run without prompts. Requires --build |
Examples
Interactive Run
norrix testThe CLI lists successful testable builds and runs all flow files in .maestro/.
CI-Gated iOS Run
# 1. Build a simulator artifact.
norrix build ios debug --simulator \
--project my-app \
--config stg \
-V 1.2.3 \
-B "$BUILD_NUMBER" \
--org "$NORRIX_ORG_ID" \
-n
# 2. Run selected Maestro flows and publish JUnit from the output directory.
norrix test ios \
--build "$NORRIX_BUILD_ID" \
--flows-dir apps/my-app-e2e/src/flows \
--flows 01-launch.yaml,02-login.yaml \
--device-model iPhone-16-Pro \
--device-os iOS-26-2 \
--wait \
--timeout-minutes 50 \
--poll-interval 20 \
--junit-output ./norrix-e2e-junit \
--org "$NORRIX_ORG_ID" \
-nAndroid Run
norrix build android debug --emulator --project my-app --config stg -n
norrix test android \
--build "$NORRIX_BUILD_ID" \
--flows-dir e2e/maestro \
--wait \
--junit-output ./norrix-e2e-junit \
-nDevice Pinning
--device-model and --device-os are iOS runner hints. If either option is provided and the runner cannot find a matching available simulator, the run fails instead of silently using a different device.
These options are useful when flows depend on stable screen geometry, for example coordinate-based login steps.
Test-Time Environment Variables
The E2E workflow injects Norrix environment variables before running Maestro. Any injected variable whose name starts with MAESTRO_ is passed to maestro test with -e, so flows can reference values such as ${MAESTRO_USERNAME}.
Set org-global values when every project can share the same test account:
norrix env set MAESTRO_USERNAME "$MAESTRO_USERNAME"
norrix env set MAESTRO_PASSWORD "$MAESTRO_PASSWORD"Set project-scoped values when one app needs different credentials:
norrix env set MAESTRO_USERNAME "$MAESTRO_USERNAME" --project my-app
norrix env set MAESTRO_PASSWORD "$MAESTRO_PASSWORD" --project my-appProject-scoped values override org-global values with the same name.
Exit Behavior
- Without
--wait,norrix testexits after the remote run is scheduled. - With
--wait, the CLI exits non-zero when the run fails, is cancelled, or times out. - With
--junit-output, the CLI downloads JUnit XML from Norrix when reports are available. Your CI system can publish*.xmlfrom that directory.
norrix test-status
Check the status of an E2E test run.
Synopsis
norrix test-status <e2eTestId> [options]Arguments
| Argument | Description |
|---|---|
e2eTestId | E2E test ID, such as e2e-test-1751234567890 |
Options
| Flag | Description |
|---|---|
--org <orgId> | Target organization ID |
Example
norrix test-status e2e-test-1751234567890Status Values
| Status | Description |
|---|---|
scheduled | E2E test record was created |
testing | Workflow has been dispatched/running |
success | All selected Maestro flows passed |
failed | One or more flows failed, or setup failed |
cancelled | Run was cancelled |
Dashboard
Enterprise organizations can also start and monitor E2E tests from the Norrix dashboard at /test. The dashboard accepts uploaded Maestro flow zips, shows recent runs, supports cancellation, and links to streamed logs for each test run.