Testing
rnx runs your React Native app in a browser, which changes what mobile
testing costs. There is no simulator to boot, no .app to build, and no macOS
runner to rent: a test suite that needs minutes of Xcode and simulator time
elsewhere runs in seconds on an ordinary Linux CI box, or straight on your
laptop against the dev server you already have running.
Your existing tests come along unchanged:
- +Maestro suites run with
rnx maestro testas a drop-in for themaestroCLI. Your.maestro/*.yamlfiles work as they are. - +Detox suites run with
rnx detox, which remaps thedetoximport to the rnx driver inside your own Jest setup. - +New Maestro tests can be written as YAML, authored from live actions, or generated with
rnx maestro generate "log in and post a photo".
Every run can also upload a recording: a link your whole team opens to watch it, scrub through the steps, and inspect what the app did, with pass/fail indexed in your dashboard and posted to the pull request.
The path to your first green test in CI
- +Run a suite locally against your dev server. If you use Detox, start at Detox suites instead. No account needed.
- +Run it on every pull request with the Contrast GitHub App. Your repo keeps zero secrets; results post to the PR as a comment and a check.
- +Read the results in the dashboard: every run with pass/fail, per-step traces, and a recording link, filterable by repo, branch, or pull request.
Which lane fits
| you have | use | page |
|---|---|---|
.maestro/ flows | rnx maestro test | Maestro suites |
| Detox e2e specs | rnx detox | Detox suites |
| no tests yet | rnx maestro init, or rnx maestro generate "<goal>" | Maestro suites, Generate a Maestro test |
| GitHub PRs to gate | the GitHub App | Tests in CI |
Local runs and CI exit codes are free and need no account. Recordings and dashboard runs ride your team’s plan; see Plans.