capybaraのWebドライバでSeleniumを使う場合にDBのクリーンアップに失敗する
capybaraのWebドライバでSeleniumを使う場合以下のモンキーパッチをActiveRecordに当てる必要がある。
これがないとDBのトランザクションが別セッションになってしまいテストのクリーンアップが失敗する場合がある。
詳しくはEveryday Rails 8章の「JavaScriptを利用するやりとりを含める」を参照。
class ActiveRecord::Base
mattr_accessor :shared_connection
@@shared_connection = nil
def self.connection
@@shared_connection || retrieve_connection
end
end
ActiveRecord::Base.shared_connection = ActiveRecord::Base.connection