2010-12-05 7 views
2

一部のモデルではMySQLを使用し、他のモデルではMongoDBを使用するRailsアプリケーションを構築しています(mongo_mapper gemを使用)。キュウリとMySQLとMongoDBのDatabase_Cleaner

私たちはアプリのために(カピバラとウェブドライバを使って)キュウリ試験を開始しており、存在しないIDが参照されているという問題を抱えています。私はこれをMongoDBの古いデータまで追跡したと信じています。

この時点で、database_cleanerはMongoDBではなくMySQLレコードでジョブを実行しています。

MongoDBの使用についてはdiscussion at the cucumber-rails projectがありますが、MongoDBとMySQLの両方ではなく、MongoDBのみを使用していると仮定していると思います。

database_cleanerでMySQLとMongoDBの両方をクリーンアップする方法はありますか?それとも、どちらか一方だけですか?

私がテストを実行する前に、MongoDBのコンテンツのすべてをドロップする方法についてthis articleを見つけましたが、私はこれは私が地元の発展のために使用していたレコードを含むすべてのデータが削除されますと信じて...

感謝。

答えて

1

あなたはモンゴDBが話をするレール言うとき、あなたがこのような何かをやっていると仮定すると:、あなたのテストに続いて

MongoDatabase = "mongodb://localhost/yourdb_#{Rails.env}" 

の操作を行います。

/spec/spec_helper.rb

MongoMapper.database.collections.select { |c| c.name != 'system.indexes' }.each(&:drop) 

(上記はMongoMapperですが、Mongoidについても同様です。データベースレベルにドロップしてすべてのコレクションを削除してください)。

これは、テストデータベースのデータのみを削除し、devdbデータベースは削除しません。 DBクリーナーと一緒に使用して、あなたは良いです。

関連する問題