qawolf flows run --env <env> is the recommended path. It runs your team’s flows from the local .qawolf/<env>/ cache, pulling them first only if they are not already cached locally, then installs the npm dependencies and Playwright browsers they need and runs them. Android flows require installing the Android tooling first with qawolf install android. See Install dependencies.
Authenticate the CLI first. See Authenticate the QA Wolf CLI.
Run an environment
From any directory, run:The CLI:
- checks the local
.qawolf/staging/cache, and pulls the environment’s flows only if they are not already cached - loads the environment’s
.envfile - installs the npm dependencies and Playwright browsers the flows need
- runs every flow
qawolf flows pull --env staging. See Pull your team’s flows.Run a subset
Pass a glob pattern to limit which flows run:--env, patterns are matched against the pulled cache under .qawolf/<env>/. Without --env, patterns are matched against both the current directory and the pulled cache.
Watch the browser
Pass--headed to see the browser window during a web run:
--headed does not apply to Android flows.
Capture artifacts on failure
By default, no video or trace is recorded. To keep artifacts only when a flow fails, set the mode toretain-on-failure:
qawolf-output/ (or the directory set by --output-dir).
To record HAR files of network traffic:
--har-content full. Response bodies use significantly more memory and disk.
Retry failing flows
Stop after the first failure
--bail is useful when iterating on a single flow and you want to fail fast.
Run web flows in parallel
--workers controls how many web flows run concurrently. Android flows must run with --workers 1 — the CLI errors out if Android flows are selected with a higher value.
Write a JUnit XML report
qawolf-output/junit-report.xml (or under the directory set by --output-dir). Pass an explicit path to override the default:
--json and --agent.
Run flows you authored locally
If you’ve scaffolded a local-only project withqawolf init, run without --env:
**/*.flow.{ts,js} in the current directory and runs them against locally-installed runtime dependencies. See Install dependencies if you need to install browsers or Android tooling explicitly.
Exit codes
qawolf flows run exits with 0 when every flow passes and 1 when one or more fail. See Exit codes for the full list.
Current limitations
- Android flows must run with
--workers 1. Parallel execution is supported for web flows only. - iOS flows are not executed. The CLI skips them with a warning.
- Flows that target the legacy
"Basic"platform pull successfully but cannot be executed by the CLI. - Flows where
targetis a computed value rather than a string literal are skipped because the CLI cannot determine the platform ahead of time.