在测试运行期间如何将Rails夹具重新加载到数据库中

时间:2018-11-30 06:30:37

标签: ruby-on-rails rspec fixtures database-cleaner

我的遗留代码使用的是DatabaseCleaner,它在完成每个测试后清除数据库。但是,它也会清除已加载的灯具数据,并使使用灯具的某些测试失败,例如:

ActiveRecord::RecordNotFound Exception: Couldn't find Country with 'id'=593363170

要使它们一起工作,如何在测试过程中将所有灯具重新写回数据库? (我是说不是耙任务)

1 个答案:

答案 0 :(得分:0)

解决方案:

设置self.use_transactional_fixtures = false 您要在其之前重新加载固定装置的文件的开头。

或在Rails 5中使用use_transactional_tests

请勿在{{1​​}}中进行设置,因为它在全球范围内适用,因此与DatabaseCleaner冲突。