Rails7でシステムテスト失敗時のスクショが保存されるディレクトリが変わる

  • Rails7未満でスクショが保存される先は"tmp/screenshots"配下固定だった。
  • このコミットでスクショ保存のディレクトリの設定が変更になって、「Capybara.save_pathがあればそれを優先して使う」になった。
  • require 'capybara/rails'すると Rails.root.join('tmp/capybara')がCapybara.save_pathに設定される(これはずっと前からそう)
  • このあわせ技により、Rails7にアップグレードするとスクショの保存先が"tmp/capybara"に変わってしまう
  • "tmp/screenshots"にしたい場合は、require 'capybara/rails'しているところよりも下でCapybara.save_path = Rails.root.join('tmp/screenshots')で :ok_woman:

2024/06/28追記

require 'capybara/rails'としていなくても、rspec-railsを利用していたらそこで暗黙的にrequire 'capybara/rails'されている模様

rspec-rails/lib/rspec/rails/vendor/capybara.rb at main · rspec/rspec-rails