Skip to content
This repository has been archived by the owner. It is now read-only.
A visual iOS testing framework
Branch: master
Clone or download
#65 Compare This branch is 176 commits ahead of playup:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Moved to

Build Status Coverage Status Gem Version


  1. Mac OS X 10.6 or newer
  2. XCode 4.2 or newer
  3. Ruby 1.9.3 or newer
  4. A few command line tools which can be installed with homebrew:
brew update && brew install imagemagick node
npm install -g coffee-script

Start using Zucchini

gem install zucchini-ios

Using Zucchini doesn't involve making any modifications to your application code. You might as well keep your Zucchini tests in a separate project.

To create a project scaffold:

zucchini generate --project /path/to/my_project

Then to create a feature scaffold for your first feature:

zucchini generate --feature /path/to/my_project/features/my_feature

Start developing by editing features/my_feature/feature.zucchini and features/support/screens/

Make sure you check out the zucchini-demo project featuring an easy to explore Zucchini setup around Apple's CoreDataBooks sample.

Running on the device

Add your device to features/support/config.yml.

The udidetect utility comes in handy if you plan to add devices from time to time: udidetect -z.

ZUCCHINI_DEVICE="My Device" zucchini run /path/to/my_feature

You can set one of the devices to be used by default in config.yml so that you can avoid setting ZUCCHINI_DEVICE each time:

  My Device:
	default: true

Running on the iOS Simulator

We encourage you to run your Zucchini features on real hardware. However you can also run them on the iOS Simulator.

First off, modify your features/support/config.yml to include the path to your compiled app (relative or absolute), e.g.

app: ./Build/Products/Debug-iphonesimulator/

Secondly, add a simulator device entry (no UDID needed) and make sure you provide the actual value for screen based on your iOS Simulator settings:

  My Simulator:
    screen: retina_ios7
    simulator: iPhone Retina (4-inch) - Simulator - iOS 7.1

Retrive a complete list of local supported simualtor version run following command on your command line:

  instruments -w sda

You can also override the app path per device:

    screen: ipad_ios6
    app: ./Build/Products/Debug-iphoneos/

Note that config.yml is compiled through ERB so that you can use environment variables, e.g.

app: <%= ENV['ZUCCHINI_APP'] %>

Run Zucchini and watch the simulator go!

ZUCCHINI_DEVICE="My Simulator" zucchini run /path/to/my_feature

See also

Built-in help

zucchini --help
zucchini run --help
zucchini generate --help

Further reading


You can’t perform that action at this time.