A visual iOS testing framework that loves your apps
Use a simple extensible DSL to specify your interaction or walkthrough scenarios.
Mark them as pending and promote them to reference as you progress with your project.
Use Zucchini as you design, code or test your app for regressions.
A Zucchini feature file consists of sections bound to contexts of different application screens. Every screen you proceed to needs to be backed up by a CoffeeScript class describing all UI elements you want Zucchini to interact with as well as custom actions you feel like performing on that screen.
: -> viewnavigationBars"Post"
: ->
super 'post'
extend @elements
'Post': -> viewnavigationBars"Post"buttons"Post"
extend @actions
'Type "([^"]*)"$':
messageArea = viewelements'Message Text Area' messageAreasetValue text
When you run Zucchini, it compiles screen classes into an UIAutomation-compliant Javascript scenario, and runs it with Apple's instruments CLI tool.
Zucchini only runs on Mac OS X 10.6 and 10.7 and requires XCode 4.2 as well as Ruby (at least 1.8.7).
The other two dependencies are ImageMagick and CoffeeScript. If you use Homebrew, they are straightforward to install:
brew update && brew install imagemagick && brew install coffee-script
Install the zucchini-ios gem:
gem install zucchini-ios
Create a project scaffold for zucchini:
zucchini generate --project /path/to/my_project
Create a feature scaffold for your first feature:
zucchini generate --feature /path/to/my_project/features/my_feature
Have a look at the newly created features and support subdirectories and start hacking away.
Alternatively, check out our nice zucchini-demo project featuring an easy to explore Zucchini setup around Apple's CoreDataBooks sample. And please, feel free to contribute a better Getting Started tutorial ;)