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

时间:2011-12-19 07:12:00

标签: ruby-on-rails rake

我有这样的config / database.yml:

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

test:
  adapter: sqlite3
  database: db/test.sqlite3
  min_messages: WARNING

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

  

rake aborted!

     

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

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

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

不是RAILS_ENV=test rake test的默认设置吗?

我正在使用rails 2.3.5运行ruby 1.8.7,而我的$RAILS_ENV未在我的shell中定义。

2 个答案:

答案 0 :(得分:3)

正在发生的事情是rake test依赖于rake db:test:prepare,它将尝试从development数据库加载当前架构。这就是在开发数据库上运行迁移时测试数据库的更新方式

答案 1 :(得分:1)

你有测试吗:单位耙任务?运行:

rake test

有效吗?你也可以粘贴输出:

rake -T | grep tests