2012-03-04 14 views
7

Mam istniejący projekt przy użyciu mongoid, database_cleaner i rspec. Próbuję dodać active_admin, używając active_admin patches available. ActiveAdmin zakłada, że ​​jest w projekcie ActiveRecord, w szczególności poprzez zależność od klejnotu meta_search.Użycie database_cleaner, mongoid i active_admin powoduje, że specyfikacja kończy się niepowodzeniem z ActiveRecord :: ConnectionNotEstablished

Kiedy idę do pracy moje specyfikacje, wszystkie one niepowodzeniem z powodu następującego błędu:

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)>' 

Wersje klejnot pokrewnych bibliotek są następujące:

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

Plik że testy nie wypełnia, 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

Powinieneś umieścić swoje rozwiązanie w odpowiedzi i zaakceptować; to jest preferowany przepływ. –

+0

@ FélixSaparelli Chciałbym, ale potrzebuję więcej punktów, aby to zrobić, niestety. Zapraszam do skopiowania i wklejenia mojego rozwiązania w miejscu = D – dznz

+0

@dznz: Nie ma wymogu rep do odpowiadania na własne pytania, o ile wiem; tylko czas oczekiwania. – BoltClock

Odpowiedz

14

[przeniesiony z przedmiotowym]

Wydaje się, że database_cleaner próbami autodetekcja dostępnych mu ORMów w its initialization method

Th to można uprzedzać zmieniając plik spec/support/database_cleaner.rb tak:

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

wywołanie metody w configuration[] nadpisuje Automatyczne wykrywanie takich ActiveRecord że nie jest już dodaną.

Innym obejściem byłoby ponowne dodanie pliku config/database.yml przy użyciu konfiguracji sqlite3, w której reszta aplikacji została zignorowana. Na szczęście to nie jest konieczne.

+0

Pozdrawiam, człowieku! Doceniony! – dznz

+0

dziękuję .. to załatwiło sprawę ... – Orlando

+0

Dzięki za pomoc! –

Powiązane problemy