Running tests

You can run a file from the editor, from the CLI, or from CI. All three paths produce the same results because they share the same engine. Pick whichever fits where you are: editor when you're iterating, CLI when you're scripting, CI when you've stopped being the one to run them.

From the editor

Click the Run button (▶) in the toolbar. The editor compiles the YAML graph and executes it against your app. Per-action progress streams into the run panel on the right, and the canvas highlights the active path as it goes. When an action's snapshot doesn't match the baseline, the diff shows up right there in the panel.

From the CLI

Compile a project (writes the compiled scripts next to each .test.yml):

provar compile .

Run everything in the project:

provar run .

Run with a visible browser window (default is headless, what CI wants):

provar run . --headless false

Stop at a given action — works for both compile and run:

provar run . --up-to enter_credentials

The --up-to flag runs the named action and everything before it, then stops. Use it when you're chasing a failing action in a long file — you can see it execute without waiting for the whole graph to drain.

Exit codes

  • 0 — every path passed. Ship it.
  • 1 — runtime error. An action failed, the browser crashed, the agent returned something nonsensical, etc.
  • 2 — usage error. Unknown subcommand, bad flag, typo in a path.
  • 130 — interrupted (Ctrl-C / SIGTERM). Anything in flight is awaited cleanly before the process exits, so you won't get half-written files on disk.

These are stable contracts — CI systems, scripts, and the editor all depend on them. The troubleshooting page has notes for the cases where local and CI disagree.

For CI-specific configuration (caching, parallelism, secrets), see CI integration.