[rspec-users] Running Cucumber with a Rails Rake task

Ben Emson lists at ruby-forum.com
Sat Oct 18 16:33:11 EDT 2008

Hi All

I've just started experimenting with Cucumber and its great.
However I wasn't quite sure how I should integrate it into my Rails

What I would like to do is set my Rails app up so that I can run a
Cucumber rake task using the standard Rails Rake system.

I've looked through the example source and understand how the Calculator
demo Rake file works, but I'm not sure I've set it up correctly in my
Rails app.

This is what I've done.

Created a new file:

I experimented trying to use the following Cucumber rake task but could
not get my steps to load my model code as I was hoping that I could tell
Cucumber what my Rails lib files were:

Cucumber::Rake::Task.new do |t|
  t.libs = ["#{RAILS_ROOT}/config/environment"] # This doesn't seem to
  profile = ENV['PROFILE'] || 'default'
  t.cucumber_opts = "--profile #{profile}"

In the end I opted to just call Cucumber from the commandline:

desc "run stories"
task :runner do
  cucumber = "cucumber stories"
  sh cucumber

And then add a helper file to my stories directory and tell my steps to
load the Rails environment, such that my_steps.rb looks like this:

require 'spec'
require File.expand_path(File.dirname(__FILE__) + "/../../helper")

# then all my step code......

And my helper.rb file looks like this:

ENV["RAILS_ENV"] = "test"
require File.expand_path(File.dirname(__FILE__) +

So is this the correct way for adding a Rake task to the main Rails Rake
file so that it will run all my stories?
Should I still include the old all.rb file in the stories directory so
that I can run it without using Rake?

Many thanks

Posted via http://www.ruby-forum.com/.

More information about the rspec-users mailing list