我运行我的rspec并且大多数测试都失败了。我得到了同样的错误,这是:
Failure/Error: Unable to find matching line from backtrace
ActiveRecord::StatementInvalid:
PG::ConnectionBad: PQsocket() can't get socket descriptor: BEGIN
我发现question与我的问题类似,但目前还没有答案,我也尝试了link的解决方案,但这对我没有任何影响。我打开了我的测试控制台并运行了一些最简单的查询,它运行起来。
答案 0 :(得分:2)
pg: '0.18.1'
可能存在问题。我尝试恢复到0.18.0
,我相信问题已经消失了。
在本地测试之后,我会在回购中打开一个问题。 我添加了issue on the pg repo。
编辑:我错了。 实际上有什么帮助,是安装spring-commands-rspec gem。我认为最终为我做的是在一个有效的状态下缓存它。虽然它也可以很容易地将其缓存在它没有的状态。答案 1 :(得分:0)
我不知道问题是否已链接 - 但我发现通过使用本地unix套接字文件而不是localhost,问题似乎消失了链接问题;也许它也可以帮到你?
"Rake spec" failing most tests, but "rails s" working fine on Diaspora source
答案 2 :(得分:0)
我收到了同样的错误,以及其他一些错误,例如PG::UnableToSend: socket not open
。在随机时间看似错误。我追查它,实际上是由于模型具有不正确的belongs_to
关联。这可能不适用于您,但希望它可以帮助某人。
我有:
belongs_to :user, class_name: User
应该是:
belongs_to :user, class_name: 'User'
不知何故,一条线正在破坏我所有的PG套接字连接。
答案 3 :(得分:0)
可能对rspec没有任何影响,但为了以防万一,请将其丢弃。我打了好几个星期,对我而言,这是乘客产生新流程的方式。我只需要添加这个
# Rails -- prepared statements incompatible with faster spawn methods.
PassengerSpawnMethod conservative
到\etc\apache2\mods-available\passenger.conf
https://www.phusionpassenger.com/library/indepth/ruby/spawn_methods/
答案 4 :(得分:0)
我安装了'pg', '0.20.0'
,降级到0.19.0它对我有用。