【问题标题】:why does mongodb fail inconsistently with rails3 and rspec?为什么 mongodb 与 rails3 和 rspec 不一致?
【发布时间】:2011-05-26 02:15:00
【问题描述】:

我们有一个使用 rspec 的 rails 3 mongodb 应用程序,我认为在 spec_helper 中设置非常正常:

  DatabaseCleaner.strategy = :truncation
  DatabaseCleaner.orm = "mongoid"
  config.before(:each) do
    DatabaseCleaner.clean
  end

但由于某种原因,mongo 似乎只是在奇怪的时间不一致地在测试中失败。也就是说,规范将在 50% 的时间内运行并且没有失败。但是 50% 的情况下,对 mongo 的简单查询将返回一个 nil 对象并导致规范失败。知道从哪里开始调试吗?在使用该应用程序的浏览器的开发模式下,这永远不会发生,mongo 在那里坚如磐石。会不会是测试环境?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 mongodb rspec mongoid


    【解决方案1】:

    试试这个:

    DatabaseCleaner.strategy = :truncation
    Databasecleaner.orm = "mongoid"
    
    config.before(:each) do
      DatabaseCleaner.clean_with(:truncation)
      DatabaseCleaner.start
    end
    
    config.after(:each) do
      DatabaseCleaner.clean
    end
    

    【讨论】:

      【解决方案2】:

      您可以在没有 DatabaseCleaner 的情况下做到这一点:

      config.before :each do
        Mongoid.master.collections.select {|c| c.name !~ /system/ }.each(&:drop)
      end
      

      【讨论】:

        猜你喜欢
        • 2018-11-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-03
        • 2014-10-24
        • 1970-01-01
        • 2014-07-05
        相关资源
        最近更新 更多