先の記事とは別のプロダクトでRails 7.0から7.1へアップデートしていたら、今度はRSpecがランダムでフリーズするようになったので、これまた備忘録がてら書き綴っておく。
何が起きたのか
RSpecのトランザクションを使用するテストがランダムでフリーズするようになった。
対応内容
rails_helper.rb
の以下の行を書き換える。
- config.use_transactional_fixtures = true + config.use_transactional_fixtures = false
代わりにDatabaseCleanerを導入して、spec_helper.rb
に追記する。
RSpec.configure do |config| config.before(:suite) do DatabaseCleaner.strategy = :transaction end config.before(:each) do DatabaseCleaner.start end config.after(:each) do DatabaseCleaner.clean end end
これでひとまずテストが全て実行されるようになった。 体感的にも、DatabaseCleanerを使うか否かで特段の差は無かったので一旦良しとしている。
おわりに
Issueを立てようかどうしようかと思いつつネット徘徊していたら、同様の内容が既に上がっていたので、こちらも共有しておく。