【问题标题】:Setup database outside transactional fixtures in Rails 2.3在 Rails 2.3 中的事务装置之外设置数据库
【发布时间】:2011-10-05 03:09:53
【问题描述】:

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

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

有没有办法防止事务性装置回滚我的设置代码?我假设我必须在事务开始之前的某个时间运行我的设置代码,但这会在哪里?

【问题讨论】:

    标签: ruby-on-rails transactions fixtures


    【解决方案1】:

    如果该数据在数据库中是否可以,对于所有测试都相同?

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

    您想添加到您的test_helper.rb 的顶部

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-04
      • 2014-04-28
      • 1970-01-01
      • 1970-01-01
      • 2016-03-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多