35歳からの中二病エンジニア

社寺・鉄道・アニメを愛でるウェブ技術者の呟き

Rails 7.1に更新したらRSpecがフリーズする件

先の記事とは別のプロダクトで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を立てようかどうしようかと思いつつネット徘徊していたら、同様の内容が既に上がっていたので、こちらも共有しておく。

github.com