我一直在努力让初始的Capybara测试与我目前使用图形数据库(neo4j)作为数据库的项目一起工作。我尝试按照此处提到的步骤https://github.com/neo4jrb/neo4j/wiki/How-To-Test初始化测试。我的neo4j测试服务器在端口运行:7475当我运行
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'
在test.rb?
我已将config / test-files附加到pastebin-document http://pastebin.com/qXwyrK9k
答案 0 :(得分:3)
即使您没有使用ActiveRecord,您的应用仍在加载它,RSpec很生气它不知道在哪里可以找到它的数据库。至少有两种可能的解决方案。
快速而又脏,请将以下内容插入config/database.yml
:
test:
<<: *default
database: db/test.sqlite3
确保您的Gemfile中有gem 'sqlite3'
。
或者,如果您知道自己不打算使用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