在运行测试时无法清除Mongo DB

时间:2015-06-11 13:22:48

标签: ruby-on-rails mongodb rspec mongoid database-cleaner

我正在使用railsmongoidsporkrspec

通过rspec运行测试时,我看到数据库中的记录数量不断增加。 purge!database_cleaner都没有帮助。

我的测试是:

describe MyConvertor do
  context 'working with my model'
    before(:each) do
      FactoryGirl.create :my_model
    end
    # examples go here
  end
end

我的规范助手是:

Spork.each_run do
  RSpec.configure do |config|
    # ...
    config.before(:each) do
      Mongoid.purge!
    end
    # ...
  end
end

正如我之前提到的,我也试过了database_cleaner,但事情并没有改变:

Spork.prefork do
  RSpec.configure do |config|
    config.order = "random"
    config.use_transactional_fixtures = false
  end
end

Spork.each_run do
  RSpec.configure do |config|
    config.before(:suite) do
      DatabaseCleaner[:mongoid].strategy = :truncation
    end

    config.before(:each) do
      DatabaseCleaner.start
    end

    config.after(:each) do
      DatabaseCleaner.clean
    end
  end
end

所以我一次有几个问题:为什么purge!没有做任何事情以及为什么DatabaseCleaner不起作用。

我找到a database cleaner issue,但没有任何有用的解决方案。

我正在使用

rails 3.2.11
mongoid 3.0.23

1 个答案:

答案 0 :(得分:1)

我在Mac OSX el capitain上有这个:

在终端上:

@model Detail
@Html.TextBoxFor(m => m.SomeProperty)
@Html.EditorFor(m => m.ACCOUNTLIST) // generates the html for each item in the collection
它告诉我这个警告:

brew doctor

然后我需要更改/ etc / paths中的顺序,使" usr / local / bin"和" / usr / local / sbin"在顶部。

再次在终端上

"Warning: /usr/bin occurs before /usr/local/bin This means that system-provided programs will be used instead of those provided by Homebrew."

当我拥有它时解决了这个问题。