为什么'rake test'试图连接到我的开发DB?

Roc*_*cky 6 rake ruby-on-rails

我有这样的config/database.yml:

development:
  adapter: postgresql
  database: psql_dev
  username: postgres
  min_messages: WARNING

test:
  adapter: sqlite3
  database: db/test.sqlite3
  min_messages: WARNING
Run Code Online (Sandbox Code Playgroud)

当我运行rake test:units时,它报告错误:

耙子流产了!

无法连接到服务器:没有这样的文件或目录服务器是否在本地运行并接受Unix域套接字"/tmp/.s.PGSQL.5432"上的连接?

为什么它没有连接到我的测试数据库(db/test.sqlite3).

并且,如果我像这样运行测试rake test RAILS_ENV=test,它运行良好.

不是RAILS_ENV=testrake测试的默认设置吗?

我正在rails 2.3.5ruby 1.8.7的,我$RAILS_ENV没有在我的壳定义.

Tho*_*uah 3

发生的情况取决于rake test哪个rake db:test:prepare尝试从数据库加载当前模式development。这就是在开发数据库上运行迁移时更新测试数据库的方式