2014-11-05 2 views
2

Я пытаюсь получить начальные тесты Capybara, работающие с моим текущим проектом, который использует базу данных графа (neo4j) в качестве базы данных. Я попытался инициализировать тесты, следуя описанным здесь шагам https://github.com/neo4jrb/neo4j/wiki/How-To-Test. Мой тестовый сервер Neo4j работает в порту: 7475 Когда я бегуRails rspec тесты с neo4j-database дают ActiveRecord :: AdapterNotSpecified-error

rspec spec/features/users_sign_up.rb 

я получаю эту ошибку:

ruby-2.1.2/gems/activerecord-4.1.6/lib/active_record/connection_adapters/connection_specification.rb:257:in `resolve_symbol_connection': 'test' database is not configured. Available: [] (ActiveRecord::AdapterNotSpecified) 
ruby-2.1.2/gems/activerecord-4.1.6/lib/active_record/connection_adapters/connection_specification.rb:224:in `resolve_connection' 
... more stack 
spec/features/users_sign_up.rb:4:in `<top (required)>' 

Так он пытается использовать базу данных, указанную в database.yml. Какую еще конфигурацию мне нужно установить или отключить, кроме добавления

config.neo4j.session_type = :server_db 
config.neo4j.session_path = 'http://localhost:7475' 

in test.rb?

Я прикрепил конфигурация/тест-файлы в Pastebin-документ http://pastebin.com/qXwyrK9k

+0

ли вы использовать -O, чтобы пропустить установку ActiveRecord при запуске 'рельсов новый myapp'? – subvertallchris

+0

Я на самом деле не создавал проект изначально, поэтому считаю, что ответ на этот вопрос - нет. – mpartan

ответ

3

Даже если вы не использую ActiveRecord, приложение по-прежнему его загрузку и RSpec сердится, что он не знает, где найти его базу данных. Есть как минимум два возможных решения.

Быстрая и грязная, вставьте следующий код в config/database.yml:

test: 
    <<: *default 
    database: db/test.sqlite3 

Убедитесь, что вы имеете gem 'sqlite3' в вашем Gemfile.

С другой стороны, если вы знаете, что вы не собираетесь использовать ActiveRecord и даже не хотите, чтобы загрузить его в вашем приложении, вы можете изменить application.rb так это выглядит следующим образом:

# require 'rails/all' 
require "active_model/railtie" 
# require "active_record/railtie" 
require "action_controller/railtie" 
require "action_mailer/railtie" 
require "action_view/railtie" 
require "sprockets/railtie" 
require 'neo4j/railtie' 

А потом комментарий из следующих строк в файле rails_helper.rb:

config.fixture_path = "#{::Rails.root}/spec/fixtures" 
config.use_transactional_fixtures = true 
+0

Большое спасибо, быстрое и грязное решение работало красиво. Я думаю, что долгосрочное решение было бы лучше, но это пока работает, по крайней мере. – mpartan

Смежные вопросы