セットアップ:
私の Rail 3.2.12 アプリでは、さまざまなモデル メソッドのほとんどをテストするために Rspec と FactoryGirl を使用しています。
私は Postgres を本番、開発、およびテストに使用しています。
問題:
1 つのモデル ZipCodes には、経度/緯度データを含む約 40,000 行と、特定の基準を満たすレコードを選択するための多数のメソッドがあります。
これらのメソッドを実際のデータに対してテストする必要があります。サイズが大きいため、テストを実行するたびにテーブルを再ロードするのは遅すぎます。
質問:
ターミナルまたはコンソールまたは rake タスクを介してその静的な ZipCodes テーブルを一度ロードし、データが変更されない限り/変更されるまでそのままにしておくにはどうすればよいですか (数か月ごとにいくつかの郵便番号を追加する可能性があります)。(また、各テストの実行後に DatabaseCleaner で消去しませんが、別の質問で答えを得ましたが、:except => [テーブル名] を使用できます。)
現在、CSV および YAML 形式のデータがありますが、必要に応じて他の形式に移動できます。
また、開発データベースからテスト データベースにデータをコピーする方法があれば、データを開発データベースにロードします。
(注: 関連付けには主キーを使用しません。郵便番号や経度などの他のフィールドですべてのルックアップを行うため、データをテストにロードする方法が私の開発データベースから主キーを取得するかどうかは問題ではありません)