对于我的Rails项目,我使用自定义代码在每次测试之前设置我的数据库。这是很多数据,每次大约需要2秒钟。每个测试的数据都是相同的,所以我想避免在每次测试时都进行这种设置。
Rails具有事务性装置,它将数据库回滚到测试之前的状态,但是在Rails装置之后。我的问题是它也会回滚到创建设置数据之前的状态。
有没有办法阻止事务处理设备回滚我的设置代码?我假设我必须在事务开始之前的某个时间运行我的设置代码,但这会是什么?
答案 0 :(得分:1)
对于所有测试,这个数据是否在数据库中是否正常?
如果是这样,您可以从以下问题中遵循相同的建议,即将种子数据与测试装置一起使用:Prevent Rails test from deleting seed data
您想要添加到test_helper.rb
require "#{Rails.root}/PATH/TO/TEST_DATA_GENERATOR.rb"
generate_test_data
在此之后,似乎您的测试数据将生成一次,然后像灯具一样以事务方式处理。希望这会有所帮助。