2012-03-04 28 views
7

Tôi có một dự án hiện có sử dụng mongoid, database_cleaner và rspec. Tôi cố gắng thêm active_admin, sử dụng active_admin patches available. ActiveAdmin giả định nó nằm trong một dự án ActiveRecord, đặc biệt là thông qua sự phụ thuộc của nó vào đá quý meta_search.Sử dụng database_cleaner, mongoid và active_admin khiến các thông số thất bại với ActiveRecord :: ConnectionNotEstablished

Khi tôi đi để chạy thông số kỹ thuật của tôi, tất cả họ đều thất bại với các lỗi sau:

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

Các phiên bản đá quý của các thư viện liên quan như sau:

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

Tập tin rằng các cuộc thử nghiệm đang thất bại trên, 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

Bạn nên đặt giải pháp của mình trong câu trả lời và chấp nhận; đó là luồng ưa thích. –

+0

@ FélixSaparelli Tôi muốn, nhưng tôi cần nhiều điểm hơn để làm điều đó, thật đáng buồn. Vui lòng sao chép-dán giải pháp của tôi tại chỗ = D – dznz

+0

@dznz: Không có yêu cầu đại diện để trả lời câu hỏi của riêng bạn theo như tôi biết; chỉ một khoảng thời gian chờ đợi. – BoltClock

Trả lời

14

[chuyển từ câu hỏi]

Dường như database_cleaner cố gắng tự động phát hiện ORM có sẵn trong số its initialization method

Th được có thể được trước empted bằng cách thay đổi các tập tin spec/support/database_cleaner.rb như vậy:

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

Gọi [] phương pháp trong configuration đè autodetect mà ActiveRecord không còn nói thêm.

Cách giải quyết khác là thêm lại tệp config/database.yml với cấu hình sqlite3 mà phần còn lại của ứng dụng bị bỏ qua. Rất may là không cần thiết.

+0

Chúc mừng, anh bạn! Đánh giá cao! – dznz

+0

cảm ơn .. điều này đã làm các trick ... – Orlando

+0

Cảm ơn sự giúp đỡ! –

Các vấn đề liên quan