2012-01-18 10 views
2

私はテストスイートをスピードアップするために、ちょっと卑猥なことをしようとしています。私は、私のレールアプリが話すデータベースに接続されたイベントマシンベースのサーバーを持っています。Railsテストでデータベースに手動で再接続する

このEMサーバーを各テストでスピンアップすると、が永久にになりますので、テストスイート全体の実行中に実行しておきたいと考えていました。

しかし、EMサーバプロセスはDBと通信し、各テストの終わりにテストDBがリセットされると非常に不調になり、多くの厄介なPostgresエラーが発生します。

私はEMサーバに新しいテストの開始時にテストDBへの接続をリセットするように指示できれば、この問題を回避することができると思います。

どうすればいいですか?

答えて

1

reconnect!をアダプタで呼び出そうとしましたか?

http://apidock.com/rails/ActiveRecord/ConnectionAdapters/AbstractAdapter/reconnect%21

+0

Thanks Xavier!おかげさまで私のコードを上司にしてくれて、テストスイートからかなりの時間を節約できました:) –

+0

あなたの接続に手があれば手助けしてくれます。私の場合は$ connection = ActiveRecord :: Base.establish_connection(@rails_env)ですので、後で$ connection.connection.reconnectを呼び出すことができます!私が見守っていたイベントで再接続を引き起こしました。 –

関連する問題