Emerge’s Snapshots product allows mobile teams to confidently ship UI changes in their app and be notified of regressions before they make it to production, without maintaining any extra test suites or code.

Getting started

Check out our platform guides!

iOS Snapshots

Android Snapshots

Continuous integration

Emerge's snapshotting solution is designed to fit seamlessly into your CI workflow, catching regressions in pull requests early before they make it into production. Emerge compares pull requests against the base branch and automatically diffs the result, giving developers a simple summary of what changed in their UI.

1442

Overview of using snapshot generation for snapshot testing in CI.

We provide a custom status check so developers can easily verify their changes at a glance:

And also get a more detailed breakdown:

Once a pull request is merged into the base branch, that becomes the new "golden" set of snapshots to compare against.

Web interface

Developers can sign up for an Emerge account to gain access to our snapshots web interface. There, we provide tools for interactive diffs, searching, and more.

Ignored diffs

If you have a flaky diff you can mark it "ignored" which will prevent this particular diff from affecting pull request status checks in future uploads. When you mark a diff as ignored it will also be de-emphasized in the changed images, but will still show has a change. The pull request status for the upload you first mark as ignored won't change, it still needs to be manually approved, but future pull requests with the same diff will ignore it.

Exporting snapshots

All snapshots for a run can be exported to a .zip file. This is often useful for language or a11y audits when exporting images to a third party or other team is important.

To export all snapshots for a run, click the "Export all snapshots to zip" from the "Actions" dropdown in the top bar. The exported snapshots will include only the snapshots from the specific upload, no diffs will be included if available.

Exporting snapshots can take some time, so we'll email you upon completion. Once you receive the completion email, follow the link included in the message, where you'll be taken to automatically download the zip file.

After the zip is created, you can also directly download the zip file from the "Actions" dropdown in the snapshots UI.

Why choose Emerge?

Snapshot testing for mobile has had a shaky past. Now, the community has largely settled on using swift-snapshot-testing for iOS and paparazzi for Android.

We'll highlight a few of the main differences:

No extra code to maintain

Both of these existing libraries require manual test cases to generate snapshots. That means you write a preview while locally developing a new UI component, and then have to duplicate those same display settings in a test case.

Emerge is instead able to generate snapshots using existing preview code.

Managed devices

Emerge runs your snapshots on real simulators (iOS) and emulators (Android) for the most accurate snapshot generation.

Sharded diffing

Emerge automatically shards our snapshot generation and diffing logic to get you faster results.

Automatic storage

Say goodbye to painful Git management for your snapshot images, Emerge stores all snapshots associated with a commit SHA.

No manual recording

When updating or adding new snapshots, some libraries require developers to record the changes manually. This is yet another process that every dev on the team has to learn, and also a common source of flakes.

Emerge treats the base commit for every pull request as the "golden" set to compare against.