2012-03-04 11 views
7

tengo un proyecto existente utilizando MongoId, database_cleaner y rspec. Intento agregar active_admin, usando active_admin patches available. ActiveAdmin supone que está en un proyecto ActiveRecord, más específicamente a través de su dependencia de la gema meta_search.database_cleaner, MongoId y active_admin provoca especificaciones para fallar con ActiveRecord :: ConnectionNotEstablished

Cuando voy a correr mis especificaciones, todas fallan con el error siguiente:

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

Las versiones de la gema de las bibliotecas relacionadas son los siguientes:

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

El archivo que las pruebas están fallando en, 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

Debe poner su solución en una respuesta y aceptarla; ese es el flujo preferido. –

+0

@ FélixSaparelli Me gustaría, pero necesito más puntos para hacer eso, por desgracia. Siéntase libre de copiar y pegar mi solución en su lugar = D – dznz

+0

@dznz: No hay un requisito de representante para responder sus propias preguntas hasta donde yo sé; solo un período de tiempo de espera. – BoltClock

Respuesta

14

[movido de la pregunta]

Parece que los intentos de database_cleaner detectar automáticamente los ORM de que dispone en its initialization method

Th se puede anticiparse a los mismos cambiando el archivo spec/support/database_cleaner.rb así:

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

Al llamar al método [] en configuration anula la detección automática de tal manera que ActiveRecord ya no se añade.

Otra solución habría sido volver a agregar un archivo config/database.yml con una configuración sqlite3 que el resto de la aplicación ignoró. Afortunadamente eso no es necesario.

+0

¡Salud, amigo! ¡Apreciado! – dznz

+0

gracias ... esto hizo el truco ... – Orlando

+0

¡Gracias por la ayuda! –

Cuestiones relacionadas