2011-06-23 8 views
2

私はアプリケーションでいくつかのスレッド機能をテストしているときにデータベースロックでこの問題が発生しました。データベースはあるスレッドでロックされ、他のすべてのスレッドはデッドロックされています。私のコードに明示的なトランザクションがないので、私は手動でガードとリリースを行うことはできません。Factory Girl&Rails:各テストをラップするデータベーストランザクションをオフにできますか?

TestCaseのフィクスチャは暗黙的(暗黙的にMYコード)のトランザクションを使用してテスト間でデータベースを消去しますが、Factory Girlの場合はどこでも見つけることができません。

もし誰でも知っているのであれば、特定のテストではオフにする方法がありますが、すべてのテストでオフにする方法はありますか?

ありがとうございます!

答えて

2

FactoryGirlはモデルを取得し、属性を設定し、そのモデルで#saveを呼び出します。私はあなたが設定を変更する必要があると思う。 RSpecのでは、あなたのspec_helper.rbファイル内の行を持っている必要があります。

config.use_transactional_fixtures = true 

この設定は、Railsのテストの設定に送信されます。これは、#setup_fixturesメソッドで使用されます。

on Railsのドキュメントtransactional fixtures

HTH

+0

パーフェクト、ありがとう!私はこれについての構成が工場の女の子と同じであるかどうかはわかりませんでした...私はあなたにビールがあります。 – jaydel

+0

あなたは私にこの道を導いて、個々のテストのためにそれを手に入れました... http://stackoverflow.com/questions/3907815/rails-3-and-rspec-2-turn-off-transactional-fixtures-for-individual-テスト – jaydel

関連する問題