Continuous Integration for iPhone


I was talking with a co-worker recently about Continuous Integration stacks for various platforms (because we are interesting like that, and because Chariot is running a CI event this fall). When we got onto the subject of iPhone he was surprised to hear how much of a complete stack was available, including unit, integration tests and full support for mocking, all of which we can bundle into our CI build.

A brief run down of what we currently use:

  • CruiseControl.rb – CruiseControl.rb is a continuous integration tool
  • OCUnit – unit test framework already integrated with XCode 3.2.3
  • OCMock – Objective-C implementation of mock objects
  • iCuke – Integration testing for iPhone applications with Cucumber

Admittedly the iCuke part is relatively new, only 5/6 months old, and there have been no updates in the last month. We haven’t used this on a project before but the potential is there. There is always potential when using Cucumber 🙂

This post is part of a series which guide you through setting up the individual pieces. After all, having continuous builds is sweet, but have having continuous builds of fully tested builds is sweeter.

Check back for the sister post to this where we will look at testing Android with JUnit andRobotium, then hooking that up into a CI environment, maybe CruiseControl.rb for consistency or maybe Hudson for a change 🙂