2012-03-04 32 views
7

我有一個使用mongoid,database_cleaner和rspec的現有項目。我嘗試使用active_admin patches available添加active_admin。 ActiveAdmin假定它在ActiveRecord項目中,最具體的是通過它對meta_search gem的依賴。使用database_cleaner,mongoid和active_admin導致規格失敗,並且ActiveRecord :: ConnectionNotEstablished

當我去跑我的規格,它們都失敗,出現以下錯誤:是

Failure/Error: Unable to find matching line from backtrace 
ActiveRecord::ConnectionNotEstablished: 
    ActiveRecord::ConnectionNotEstablished 
# ./spec/support/database_cleaner.rb:12:in `block (2 levels) in <top (required)>' 

相關庫創業板的版本如下:

  • activeadmin(0.4.2)
  • database_cleaner(0.7.1)
  • mongoid(2.4.5)
  • meta_search(1.1.3)
  • 了activerecord(3.2.1)

的,該測試失敗立案,spec/support/database_cleaner.rb

require 'database_cleaner' 

RSpec.configure do |config| 
    config.before(:suite) do 
    DatabaseCleaner.strategy = :truncation 
    DatabaseCleaner.orm = "mongoid" 
    end 

    config.before(:each) do 
    DatabaseCleaner.clean 
    end 
end 
+0

你應該把你的解決方案放在答案中,並接受它;這是首選流程。 – 2012-03-04 23:24:02

+0

@FélixSaparelli我想,但我需要更多的觀點來做到這一點,可悲的是。隨意複製粘貼我的解決方案= D – dznz 2012-03-04 23:40:39

+0

@dznz:就我所知,沒有代表回答您自己的問題;只有一段等待時間。 – BoltClock 2012-03-05 05:41:33

回答

14

[從問題移動]

似乎database_cleaner嘗試自動檢測可用的ORM its initialization method

Th是可以被搶先通過改變spec/support/database_cleaner.rb文件像這樣:

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

撥打configuration[]方法重寫自動檢測,使得不再添加的ActiveRecord。

另一個解決方法是重新添加一個config/database.yml文件,該文件帶有應用程序其餘部分忽略的sqlite3配置。謝天謝地,這是沒有必要的。

+0

乾杯,男人!不勝感激! – dznz 2012-03-05 21:22:28

+0

謝謝..這個伎倆... – Orlando 2012-03-12 16:59:36

+0

感謝您的幫助! – 2012-06-07 05:02:18

相關問題