Running e2e mobile tests with detox

Running feature branch tests in expo apps.

This article is still a draft.

One of the main headaches for mobile development is the compile and release processes for app store submission and release. Unlike web applications releasing to the app store can in some cases take days, and requires careful co-ordination with backend rollouts.

One technique that many development teams turn to for reliable deployments is e2e testing, with the most desirable end game being the ability to quickly (and cheaply!) run critical e2e tests on you codebase before any merging takes place. This removes the headache of finding which commit broke the e2e tests when you try to build your next release!

Sadly for mobile applications this utopia has, in my experience, been a little hard to find - the requirement to compile binaries, setup simulators and configure your application to target alternative endpoints all create obstacles for a quick test system. And that's before we even try writing or running repeatable flake-less tests against these devices!

Fortunately for users of Expo and EAS after many hours of experimentation I've found some gold at the bottom of my bucket of frustration.