2012-03-04 65 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

相关问题