RailsでCucumberのstepがfaildを返したときのデバック方法

もし以下のようなstepでテストがfailedになった場合、

Given /^(.*)番目のアイテムの詳細ページを表示している/ do |pos|
  visit "items/index"
  within("table > tr:nth-child(#{pos.to_i + 1})") do
    click_link "詳細"
  end
end

save_and_open_pageを以下ように埋め込む

Given /^(.*)番目のアイテムの詳細ページを表示している/ do |pos|
  visit "items/index"
  save_and_open_page
  within("table > tr:nth-child(#{pos.to_i + 1})") do
    click_link "詳細"
  end
end

すると/items/indexにアクセスしたときに返されたhtmlが{RAILSROOT}/tmp以下にwebrat○○.htmlという名前で保存される。

これを見るとデバッグするときに非常に便利です。