我试图使用Rspec和Postgres在gem中测试一些模型。目前正在尝试通过在spec_helper.rb文件中运行rake任务来执行此操作,该文件将在我的Rspec测试期间建立pg数据库连接。
我已经扫描了其他问题(我的方法很大程度上基于这两个问题1, 2)并且没有发现一个好的解决方案。
由于编写代码的方式,我没有使用sqlite内存数据库功能。
自定义spec_helper如下所示:
RSpec.configure do |config|
load "support/schema.rb"
load File.expand_path("../../../lib/tasks/database.rake", __FILE__)
require File.dirname(__FILE__) + 'support/models.rb'
Rake::Task['database'].invoke
然而,当我运行rspec时,它告诉我没有连接池:
active_record/connection_adapters/abstract/connection_pool.rb:570:in
`retrieve_connection': No connection pool for ActiveRecord::Base
(ActiveRecord::ConnectionNotEstablished)
有没有人对此问题有任何建议或见解?非常感谢。
答案 0 :(得分:0)
ActiveRecord::Base.establish_connection(adapter: 'postgresql',
encoding: 'unicode', database: '<db_name>', username: '<user>')
这应该在任何其他数据库交互(包括加载schema.rb
)