3

我正在使用rails, mongoid, spork, rspec.

通过运行测试时,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不工作。

我发现了一个数据库清理问题,但没有任何有用的解决方案。

我在用

rails 3.2.11
mongoid 3.0.23
4

1 回答 1

1

我在 Mac OSX el capitalin 上有这个:

在终端上:

brew doctor

它向我展示了这个警告:

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

然后我需要更改/etc/paths 中的顺序,使“usr/local/bin”和“/usr/local/sbin”位于最前面。

再次在终端上:

sudo vi /etc/paths

/usr/local/bin
/usr/local/sbin
/usr/bin
/bin
/usr/sbin
/sbin

这解决了我遇到的问题。

于 2016-06-08T00:21:49.660 回答