PIYO - Tech & Life -

Capybaraのフィーチャテストで自動的にスクリーンショットを撮るgem

Rails RSpec

テスト失敗時のスクショ撮りをRSpec + Capybaraで設定ほぼ不要でおまかせできたので紹介します。

GitHub - mattheworiordan/capybara-screenshot: Automatically save screen shots when a Capybara scenario fails
Automatically save screen shots when a Capybara scenario fails - GitHub - mattheworiordan/capybara-screenshot: Automatically save screen shots when a Capybara scenario fails

Gemfileに↓を書いてbundle installし、

group :test do
  gem 'capybara-screenshot'
end

rails_helper.rbあたりに↓の記述を入れておけばOK

require 'capybara-screenshot/rspec'

実際には↓の箇所でテスト後のコールバックを登録してあって、内部で失敗かどうかを判定してtmp/capybara/以下にhtmlとpngを保存してくれるようになっています。自動的にタイムスタンプとかもつけてくれます。

capybara-screenshot/rspec.rb#L93

スクリーンショットはsave_screenshotでも取れるので、同じようなことを自分書いても大したことないコード量で済みますが、さくっと導入する分には便利なのでこっち使っちゃうほうが好きです。