在Rails 2.3中的事务工具之外设置数据库

时间:2011-07-14 08:01:25

标签: ruby-on-rails transactions fixtures

对于我的Rails项目,我使用自定义代码在每次测试之前设置我的数据库。这是很多数据,每次大约需要2秒钟。每个测试的数据都是相同的,所以我想避免在每次测试时都进行这种设置。

Rails具有事务性装置,它将数据库回滚到测试之前的状态,但是在Rails装置之后。我的问题是它也会回滚到创建设置数据之前的状态。

有没有办法阻止事务处理设备回滚我的设置代码?我假设我必须在事务开始之前的某个时间运行我的设置代码,但这会是什么?

1 个答案:

答案 0 :(得分:1)

对于所有测试,这个数据是否在数据库中是否正常?

如果是这样,您可以从以下问题中遵循相同的建议,即将种子数据与测试装置一起使用:Prevent Rails test from deleting seed data

您想要添加到test_helper.rb

的顶部
require "#{Rails.root}/PATH/TO/TEST_DATA_GENERATOR.rb"
generate_test_data

在此之后,似乎您的测试数据将生成一次,然后像灯具一样以事务方式处理。希望这会有所帮助。