rails3でcucumber-rails0.4.0.beta1を使うとちょっと大変だった

Rails(3.0.3)からcucumber-rails(0.4.0.beta1)を使うまでが慣れてなくて大変だったのでメモしておく。

railsプロジェクト作成

$ r new hoge -d mysql

※ r = rails

Gemfile編集

group :test do
  gem 'rspec-rails', '~> 2.2.0'
  gem 'webrat', '~> 0.7.2'
  gem 'cucumber-rails', '0.4.0.beta.1'
  gem 'database_cleaner', '~> 0.6.0'
end

gemインストール

$ bundle install

cucumberを利用できるよう設定

$ r g cucumber:install ja --rspec --webrat

※ g = generate

エラー発生。(Uninitialize constant Cucumber::Rails)

config/application.rbを編集

cucumber-0.4.0.beta.1ではgeneratorのコードの"require 'cucumber/rails/version'"がコメントアウトされており、それが原因で動かない。
なのでアプリのapplication.rbに"require 'cucumber/rails/version'"を追加する。
その後もう一回cucumber:installするとうまくgeneratorが走る。

features/support/env.rb

以下を設定する。

Webrat.configure do |config|
  config.mode = :rack # => デフォルトは:rails
  config.open_error_files = false
end

DatabaseCleaner.strategy = :trunsaction

※追記したとこだけしかかいてません

config.modeのところは詳しく調べていないけど:railsで走らせるとno method error visitというのが出てくる。

後はRails3.0 + Cucumber 0.9.1 + cucumber-rails 0.3.2 の優しい育て方 - Bstyle = LOlita + Gothic 4th Trialにわかりやすい説明があったのでその通りやればできました。