ruby on rails-为什么mongodb与rails3和rsspec不一致地失败



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

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

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

试试这个:

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

您可以在没有DatabaseCleaner的情况下使用:

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

相关内容

  • 没有找到相关文章

最新更新