Simple example of Autotest, Cucumber, and Growl
June 17th, 2009
As an example of getting Autotest, Cucumber, and Growl up and running I’ve created a super simple test project. You can download the example project, or just create it from the code on this post.
Install Ruby, Growl, and Gems
First up we need to ensure that we have all our dependancies installed.
If you haven’t already, download and install Ruby.
Then we need to install the Autotest, Cucumber, and Growl Ruby gems. We can do this using the gem command that comes packaged with Ruby.
# Autotest test is part of the ZenTest gem sudo gem install ZenTest sudo gem install cucumber # Use my modified autotest-growl gem (until the changes are merged into the official gem) sudo gem install karl-autotest-growl --source http://gems.github.com
Next we need to ensure that the Growl application itself is installed. If not download and install Growl.
Create Project
Now we are ready to create our project. The either download the example project or create the file heirarchy below:
-
[dir] Autotest-Cucumber
- [file] .autotest
- [dir] features
- [file] test.feature
Copy the code below into the .autotest file:
.autotest
require 'autotest/growl'
And the copy the following into the test.feature file:
test.feature
Feature:
Scenario:
Given I save 1
Then I have 1Set Environment
Lastly we need to set the AUTOFEATURE environment variable to true, so that autotest will run the Cucumber tests automatically:
AUTOFEATURE=true
Run Autotest!
Finally we can run autotest, and watch as it picks up the Cucumber tests, runs them, and notifies us via Growl. Open terminal and navigate to the project directory. Then run autotest:
autotest
Autotest will initiate a Cucumber run. Cucumber will pick up the test.feature file (because it looks for a features folder by default). The Cucumber run will show that you have 1 undefined scenario (and be kind enough to give you the code for your undefined steps). And finally Growl will display a notification that you have 1 undefined scenario, yay!
c:/ruby/bin/ruby c:/ruby/lib/ruby/gems/1.8/gems/aslakhellesoy-cucumber-0.3.11.3/bin/cucumber --format progress --format rerun --out C:/Temp/autotest-cucumber.17824.1 features UU 1 scenario (1 undefined) 2 steps (2 undefined) 0m0.000s You can implement step definitions for undefined steps with these snippets: Given /^I save 1$/ do pending end Then /^I have 1$/ do pending end
July 17th, 2009 at 3:26 pm
[...] Growl and Autotest work brilliantly together. Autotest runs all your tests in the background every time a file changes, giving you extremely fast feedback on your test driven development. And Growl notifications save you from needing to flip back to the Terminal to see the result of each test run, you get an unobtrusive popup in the corner of your screen showing the success or failure of the tests. [...]