Ruby on rails &引用;Rake spec";大多数测试失败,但;轨道s";在侨民来源上工作

Ruby on rails &引用;Rake spec";大多数测试失败,但;轨道s";在侨民来源上工作,ruby-on-rails,ruby,postgresql,rspec,diaspora,Ruby On Rails,Ruby,Postgresql,Rspec,Diaspora,我已经克隆了散居者的来源,而且我有一个可以正常运行的本地豆荚。但是当我运行$rake spec时,一些初始测试通过了,然后所有测试都开始失败。另外,我发现有趣的是,每次运行rake spec时,它们都会在不同的点失败 它们都会因错误而失败: An error occurred in an after hook ActiveRecord::StatementInvalid: PG::ConnectionBad: PQsocket() can't get socket descriptor: R

我已经克隆了散居者的来源,而且我有一个可以正常运行的本地豆荚。但是当我运行
$rake spec
时,一些初始测试通过了,然后所有测试都开始失败。另外,我发现有趣的是,每次运行
rake spec
时,它们都会在不同的点失败

它们都会因错误而失败:

An error occurred in an after hook
  ActiveRecord::StatementInvalid: PG::ConnectionBad: PQsocket() can't get socket descriptor: ROLLBACK
  occurred at /home/darshan/.rvm/gems/ruby-2.0.0-p353@diaspora/gems/activerecord-3.2.16/lib/active_record/connection_adapters/postgresql_adapter.rb:650:in `async_exec'
博士后日志说:

could not receive data from client: Connection reset by peer
unexpected EOF on client connection

我遇到了同样的问题,并发现通过使用本地unix套接字文件,而不是通过localhost访问Postgres服务器,问题似乎已经解决了


要实现这一点,请从database.yml文件中删除
host:localhost
,然后重新运行
rake spec
。这默认回到本地套接字文件(通常是/tmp或/var/run/postgres中的.s.PGSQL.5432,具体取决于您的平台。)

我运行到了。我试着恢复到
pg
版本
0.18.0
,而不是
0.18.1
,这似乎可以解决我的问题。

转到
postgres.conf
并将
ssl=true
更改为
ssl=false


我找到了这个问题的解决方案,它对我起了作用。

你是否运行了$rake db:test:prepareYes,@RahulSingh,我运行了。发布你的
数据库。yml
看起来像是连接或性能问题,而不是配置问题。您的测试数据库是否位于远程主机上?@ishwr我切换到使用MySQL,这对我很有效。这是一个非常奇怪的错误,我不确定是什么导致了它。我尝试了这个,但仍然得到相同的错误。这修复了我们的测试套件错误,在Amazon EC2 Ubuntu box上运行minitest+rails 4。非常感谢!!我不建议将其用于生产。