まず、「rake RAILS_ENV=test ...」を実行して、テスト スイートをテスト DB にヒットさせる必要があります。面倒だけど一緒に住んで大丈夫。
ただし、そうすると、次のような長いエラーが発生します。
> 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]
一部の DB 定義が不必要に再ロードされているようです。Googleでこれに関する言及が見つからないので、他の人がこれを見たかどうか疑問に思っていましたか?
environment.rb で次のように PostgreSQL データベースを使用しています。
config.active_record.schema_format = :sql
Rails 2.3.5 と rake 0.8.7 を使用しています。
この時点で修正しましたが、方法を忘れていました。テンプレートスキーマにpgcryptをロードした可能性があると思うので、データベースはすでにロードされた「空の」データベースを作成しており、レールは保存されたスキーマから関数を再定義していました。テンプレートデータベースから関数をアンロードすると、それが修正されます。