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.
- Setting up OCUnit in Xcode 3.2.3 for iOS 4.0
- Setting up OCMock
- Setting up iCuke for integration testing
- Setting up Continuous Integration with CruiseControl.rb
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 🙂