Skip to Content
CLI ReferenceE2E Test Commands

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 --emulator or 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

ArgumentDescription
platformTarget platform: ios or android

If platform is omitted, the CLI can prompt you to select from available testable builds.

Options

FlagDescription
-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
--waitWait 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-interactiveRun without prompts. Requires --build

Examples

Interactive Run

norrix test

The 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" \ -n

Android 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 \ -n

Device 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-app

Project-scoped values override org-global values with the same name.

Exit Behavior

  • Without --wait, norrix test exits 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 *.xml from that directory.

norrix test-status

Check the status of an E2E test run.

Synopsis

norrix test-status <e2eTestId> [options]

Arguments

ArgumentDescription
e2eTestIdE2E test ID, such as e2e-test-1751234567890

Options

FlagDescription
--org <orgId>Target organization ID

Example

norrix test-status e2e-test-1751234567890

Status Values

StatusDescription
scheduledE2E test record was created
testingWorkflow has been dispatched/running
successAll selected Maestro flows passed
failedOne or more flows failed, or setup failed
cancelledRun 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.