How_To_Reset_Factorybot_Records_In_Rails_Tests

ケース

  • 同じDBを参照している環境でテストを二重実行してしまい、不整合なレコードがテスト環境に残ってしまった時

方法

  1. テスト環境でコンソールを起動
RAILS_ENV=test rails console
  1. コンソールで以下を実行し、テストDB内の全てのレコードをリセット
ActiveRecord::Base.connection.tables.each do |table|
  ActiveRecord::Base.connection.reset_pk_sequence!(table)
  ActiveRecord::Base.connection.execute("DELETE FROM #{table}")
end
  • 特定のレコードのみ削除したい場合は以下のように直接削除する
User.delete_all