This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.
Using TesterArmy
Edit page
Learn how to test your Expo app with TesterArmy on each push and pull request, using EAS Build and EAS Workflows.
TesterArmy is a hosted testing platform that tests your app with AI agents. An agent opens your app, taps through a flow like a user does, and checks the result. TesterArmy runs saved tests and an exploration agent on cloud Android Emulators and iOS Simulators.
This guide shows how to build your app with EAS Build and run TesterArmy tests on each push and pull request with EAS Workflows. To run tests on your own emulator or simulator with TesterArmy's open source e2e framework, see Using e2e by TesterArmy.
3 requirements
3 requirements
1.
Sign up at tester.army and create a mobile project. Add at least one test to a test group. Run the test once from the TesterArmy dashboard to confirm it works.
2.
EAS Workflows runs on push and pull request events from GitHub. See Link your GitHub repository to your Expo project.
3.
Connect your repository in the Integrations tab of your TesterArmy project. Without it, TesterArmy cannot post checks or comments on your pull requests.
Run TesterArmy tests on EAS Workflows
1
Add build profiles
TesterArmy runs an Android APK (.apk) and an iOS Simulator build (.app). It does not accept an .aab or an .ipa. The Android build also needs android.package in your app config. Add two build profiles to eas.json:
2
Add environment variables
The workflow reads these variables from the preview environment of your EAS project:
Create the variables in the EAS dashboard or with EAS CLI. Set the visibility of TESTERARMY_API_KEY to Secret, and do not add an EXPO_PUBLIC_ prefix to it.
3
Add the workflow
Create .eas/workflows/testerarmy-mobile-tests.yml with the following workflow. It runs on push and pull request events for main, and on manual runs. For each platform, it runs these jobs:
- A
buildjob creates the app with the TesterArmy build profile. - An upload job downloads the app with
eas/download_buildand runsnpx testerarmy upload-app. - A test job runs
npx testerarmy ciwith your test group. When the workflow runs on a pull request, TesterArmy posts a GitHub check and a comment on the pull request. When it runs on a push tomain, TesterArmy posts a GitHub check on the commit.
To start the workflow without a push, run:
4
Skip native builds with fingerprint and repack
A full native build on each run is slow. When a change only touches JavaScript, the workflow can reuse an existing build instead. Add these jobs before the build jobs:
- One
fingerprintjob calculates a hash of your app's native code for each platform. - For each platform, a
get-buildjob looks for an existing build with the same hash and build profile. - When a build exists, the
repackjob adds the current JavaScript bundle to it. Otherwise, thebuildjob runs and creates a new build.
The upload jobs then run after repack or build, whichever created the build. Keep the environment of the fingerprint job the same as the environment your build profile uses.
The fingerprint job only supports Continuous Native Generation (CNG). If you commit your android and ios directories, use the workflow from the previous step.
5
Test pull requests with the exploration agent
The exploration agent runs only on pull requests. It reads the pull request title, description, and changes, and writes its own test steps. It runs the steps on the uploaded app, then updates the pull request comment with the result of each step and a video.
Add these jobs to the workflow from step 3 or step 4. They use the app that the upload jobs send to TesterArmy:
Before a run starts, TesterArmy checks the changes. A pull request may have no change that users can see, such as a docs or config change. Then the check shows "Tests skipped" with the reason. TesterArmy decides this for each platform. TesterArmy checks do not block merges by default.
If a coding agent writes your pull requests, add the TesterArmy testing instructions to your AGENTS.md or CLAUDE.md. The agent then ends each pull request description with steps the exploration agent can follow.
Additional resources
Run TesterArmy platform tests on EAS Workflows, with fingerprint and repack, the exploration agent, and a setup prompt for coding agents.
An Expo app with the TesterArmy build profiles and workflow.