RSPECでtransactionのエラーがでる


RSPECでテストをしようとしたらエラーが出ました(☝ ՞ਊ ՞)

active_recordが存在しないエラーが発生

rspecを実行します。sporkを使っているのでdrbオプションをつけています。

bundle exec rspec --drb spec/requests/

Failure/Error: Unable to find matching line from backtrace
ActiveRecord::StatementInvalid:
Mysql2::Error: SAVEPOINT active_record_1 does not exist: ROLLBACK TO SAVEPOINT active_record_1

よくわからないエラーがでました:(;゙゚’ω゚’):

transaction_fixturesを変更する

spec_helperのtransaction_fixturesをtrueからfalseに変更します。

vi spec/spec_helper.rb
config.use_transactional_fixtures = false

# DatabaseCleaner
config.before(:suite) do
DatabaseCleaner.strategy = :transaction
end

ついでにDatabaseCleanerの設定に:transactionを指定しました。

動作確認

動作テストをしました。

bundle exec rspec --drb spec/requests/

………

Finished in 2.09 seconds
9 examples, 0 failures

Randomized with seed 58262

動いたヤッタネ(☝ ՞ਊ ՞)

参考:https://relishapp.com/rspec/rspec-rails/docs/transactions


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です