我们有一个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