rake test和test_structure.sql

时间:2010-05-07 17:36:11

标签: ruby-on-rails postgresql rake test-suite

首先,我必须运行“rake RAILS_ENV = test ...”才能让测试套件点击我的测试数据库。很烦人但可以忍受。

然而,当我这样做时,我得到了很多错误:

> rake RAILS_ENV=test -I test test:units
psql:/path/to/project/db/test_structure.sql:33: ERROR:  function "armor" already exists with same argument types
[and many more]

看起来某些数据库定义正在不必要地重新加载。我在谷歌上找不到这个,所以我想知道其他人是否见过这个?

我在我的environment.rb中使用了PostgreSQL数据库:

  config.active_record.schema_format = :sql

并使用Rails 2.3.5和rake 0.8.7。

此时我已经修好但却忘记了!我想我可能已经将pgcrypt加载到模板模式中,因此数据库正在创建一个已经加载的“空白”数据库,然后rails从已保存的模式重新定义了这些函数。从模板数据库中卸载函数将修复该问题。

1 个答案:

答案 0 :(得分:1)

运行rake任务的通常惯例如下:

> RAILS_ENV=test rake test:units

或如下:

> rake test:units RAILS_ENV=test

你可以尝试以上述方式之一跑步吗?希望能有所作为!