Skip to main content
Use targets to run the same tests under different browser settings without copying test files. Each target picks tests by label or path and sets browser overrides in use. Select one or more targets with momentic run --target.
momentic.config.yaml
Each selected target runs its matching tests once. A test that matches both targets runs twice, and reports name each run as <test name> [<target>].

Select tests

object
A target name uses letters, digits, and hyphens and is case sensitive. {} is a valid target: it selects every test and changes no settings.
string[]
Select tests that have at least one of these labels.
string[]
Select tests whose file path matches one of these globs. Paths are relative to the project root.
string[]
Drop tests whose file path matches one of these globs. Exclusions apply after labels and include.
A test must match every selector the target sets. Paths, --labels, --include, and --exclude on the command line narrow the target further; they don’t replace its selectors. The CLI --include and --exclude flags take regular expressions, while target include and exclude take globs. If a selected target matches no tests, momentic run fails before any test starts.

Override browser settings

string | object
Browser viewport, as "<width>,<height>" or { width, height }.
string | null
User agent string. null uses the browser’s native user agent; the string "null" is sent as a literal user agent.
string
BCP 47 language tag such as fr-FR. Sets the browser language, navigator.language, number and date formatting, and the default Accept-Language header. It doesn’t change the timezone, geolocation, or URLs.
Settings apply in this order, with later layers winning: browser defaults, environment browser settings, test settings, target use, then settings you pass on the command line.

Inspect targets

List each target with its selectors, settings, and number of matching tests:
Preview what a run would do without logging in or starting a browser. The preview shows the selected tests per target and where each test’s environment, URL, viewport, user agent, and locale come from:
Add --json to either command for machine-readable output.

Notes

  • A run without --target ignores targets and uses test settings, even when the project defines targets.
  • --target can’t be combined with --ai-select, --ai-select-dry-run, or --from-snapshot.
  • A target that sets use.locale fails the run if an Accept-Language header is also set in test, environment, or project settings, or with --custom-headers. Remove one of the two.
  • Targets that set use skip step cache reads and writes, since cached steps don’t record the viewport, user agent, or locale.
  • Targets that set use keep their own visual diff baselines under <goldenFileDir>/targets/<name>/. An explicit baseline path gets targets/<name>/ inserted before the file name.
  • Target names appear in local output and in JUnit, JSON, Allure, Playwright JSON, and Buildkite reports. Run pages in the Momentic app don’t show the target yet.
  • A target has no suite-level setup or teardown and can’t set environment variables. Unknown keys under a target or its use fail config validation.