3

開発者データベース (Ruby on rails) を頻繁にクリアして再ロードしたい。

もちろん、Web ページから手動でデータを追加することもできますが、この種のテストの戦略を誰かが持っているかどうか疑問に思っていました。

(私はすでにユニット、機能、および統合テストを持っています、fyi)

ありがとう

4

2 に答える 2

6

seed.ymlディレクトリにファイルを作成しますdb。作成するモデルごとに YAML ドキュメントを追加します。このドキュメントには、ハッシュのリストが含まれている必要があります。各ハッシュにはモデル属性が含まれている必要があります。

  users:
      -   login: jake
          password: jake123
          password_confirmation: jake123
          first_name: Jake
          last_name: Driver

      -   login: Jane
          password: jane123
          password_confirmation: jane123
          first_name: Jane
          last_name: McCain

  categories:

  products:

あなたのseed.rbファイルで

seed_file = File.join(Rails.root, 'db', 'seed.yml')
config = YAML::load_file(seed_file)
User.transaction do 
  config.keys.each{ |key| key.classify.constantize.create(config[key]) }
end

YML ファイルのシード データを変更する方が簡単だと思います。私が構築したアプリケーションは、別のチームによってデプロイされています。彼らもこのアプローチを気に入っています。

データをクリアするために、lib\tasks ディレクトリに rake タスクがあります。rake タスクを として実行しますapp:flush

namespace :app do
  desc "Flush all the seed data "
  task :flush => :environment do
    config = YAML::load_file(File.join(Rails.root, 'db', 'seed.yml'))
    User.transaction do 
      config.keys.each{ |table| truncate_table(table)}
    end
  end
end
于 2010-03-05T21:02:46.437 に答える
1

「フィクスチャ」と「シード データ」を見てみましょう ;-) 私はあなたに明確な説明をするのに十分ではありませんが、これら 2 つのキーをグーグルで調べれば、必要なすべての情報が得られるはずです。

これらをチェックしてください:http://derekdevries.com/2009/04/13/rails-seed-data/
http://lptf.blogspot.com/2009/09/seed-data-in-rails-234.html

于 2010-03-05T19:13:53.647 に答える