Emcee - iOS testing infrastructure


I'm glad to introduce you an Emcee project. This tool allows you to run your test suites in parallel on multiple Mac machines.

Here is the link:

We've developed Emcee to speed up UI and unit test runs in Avito. Currently we have a massive number of native XC UI tests (700+), and Emcee allows us to run them all on multiple iOS runtimes in one hour. We also run UI tests on pull requests as well. Emcee takes care about prioritization and load balancing of Macs.

Currently it uses Facebook tooling to work with simulators and run tests:

  • fbsimctl to create, boot simulators. There is a WIP to allow use of xcrun simctl
  • fbxctest to run tests. We've used it because it streams even in JSON format. There is also a plan to run tests using xcodebuild. It doesn't support JSON output though, so this will be a bit tricky.

Emcee is written entirely in Swift. There is a simple plugin system available as well.

Let me know in comments what do you think. Share your experience. I'm open to help you with a setup.