1

私はここでソースコードを見ることができる独立した宝石を構築しています: https ://github.com/mabounassif/facebook_event_fetcher.git

現在の設定では、最初にテストデータベースを設定せずにFactoryGirlを使用してテストすることはできません。テストデータベースを「準備」する正しい方法は何ですか?

私が考えていた解決策は、db:test:preparerakeタスクを作成することでした。基本的に、test.sqlite3ファイルが存在する場合はそれを削除してから、新しいファイルを作成し、正しいテーブル設定でデータベースを移行します。最初はクリーンな解決策のようでしたが、rakeタスクを実行したときにActiveRecord NotConnectedを取得しました。特に、spec_helperで接続を設定した場合、Rakefile内で接続を設定する必要があるのは面倒でした。 rb。繰り返して汚れているようです。

誰かが私がどのように進むべきかについてヒントを与えることができますか?

4

1 に答える 1

0

最後に、Rakefile で ActiveRecord 接続を再度設定することにしました。これが私の最終的なセットアップです。

https://github.com/mabounassif/facebook_event_fetcher

すべての重要な部分は rake ファイルです。

namespace :db do
  desc "Migrate the database through scripts in lib/generators/facebook_event_fetcher/install/templates. Target specific version with VERSION=x"
  task :prepare => :environment do
    ActiveRecord::Migration.verbose = true
    ActiveRecord::Migrator.migrate('lib/generators/facebook_event_fetcher/install/templates', nil)
  end

  task :environment do
    File.delete('db/test.sqlite3') if File.exist?('db/test.sqlite3')
    ActiveRecord::Base.establish_connection(YAML.load_file("config/database.yml"))
    ActiveRecord::Base.logger = Logger.new(File.open('db/database.log', 'a')) 
  end
end
于 2012-12-08T05:43:12.540 に答える