如何在测试 运行 期间将 rails 装置重新加载到数据库中
How to reload rails fixtures into database during test running
我的旧代码使用的是 DatabaseCleaner,它会在每次测试完成后清除数据库。然而,它也会清除加载的固定装置数据并导致一些使用固定装置的测试失败,例如:
ActiveRecord::RecordNotFound Exception: Couldn't find Country with 'id'=593363170
为了让它们一起工作,我怎样才能在测试期间将所有装置重写回数据库? (我的意思是不是rake任务)
解决方案:
设置self.use_transactional_fixtures = false
在您要重新加载灯具的文件的开头。
或在Rails中使用use_transactional_tests
5.
不要在 spec_helper
中设置它,因为它适用于全局,因此与 DatabaseCleaner 冲突。
我的旧代码使用的是 DatabaseCleaner,它会在每次测试完成后清除数据库。然而,它也会清除加载的固定装置数据并导致一些使用固定装置的测试失败,例如:
ActiveRecord::RecordNotFound Exception: Couldn't find Country with 'id'=593363170
为了让它们一起工作,我怎样才能在测试期间将所有装置重写回数据库? (我的意思是不是rake任务)
解决方案:
设置self.use_transactional_fixtures = false
在您要重新加载灯具的文件的开头。
或在Rails中使用use_transactional_tests
5.
不要在 spec_helper
中设置它,因为它适用于全局,因此与 DatabaseCleaner 冲突。