私は、テスト環境でのみ実行すべきいくつかのレーキタスクを持つRails 3 gemを持っています。他の環境で動作させることは実際には意味がありません。テスト環境で自動的にgemタスクを実行する
私の問題は、私の宝石で自分の仕事を見つけるためにRailsシステムをロードすることです。だから私の仕事になるまでに、Railsはすでに "開発"環境(またはユーザが指定した環境)にロードされています。これは、ユーザーが行う必要があり、適切に私のすくいタスクを実行するために、意味:
RAILS_ENV=test rake mytask
私のタスクが唯一の「テスト」環境で理にかなっているので、私はむしろ、ユーザは単に型にできるようになると、これは迷惑です。
rake mytask
これはどのようにテストに似ています:単位とテスト:汎関数は、自動的にテスト環境を想定し、ユーザーは、コマンドラインでRAILS_ENV =テストを指定する必要はありません。ですから、Railsがテスト環境に切り替えるようにテストを変更するにはどうしたらいいですか?
私の現在の回避策は次のとおりです。
Rails.env = 'test'
ActionMailer::Base.delivery_method = :test
require Rails.root.join('test/test_helper')
は、これはやや動作しているようですが、まだ/ development.logをログに記録するログ記録され、私はそれはまだ実際に「開発」設定を実行していると思います。誰にもアイデアはありますか?テスト・タスクがRails自体でどのように定義されているかを見ると、私が見ることができる方法を明らかにしていません。
https://github.com/rails/rails/blob/master/railties/lib/rails/test_unit/testing.rake
Genius!シンプルで、あるタスクが別のタスクを乱してしまうのを避けるために、フォークする必要のある別の問題を解決します。私はいくつかのポイントを持っていればいいと思います。私はコミットであなたに信用を与えました: https://github.com/eric1234/test_inline/commit/fe3da7efa3a2cdb7824c23cfa41697b0ceb9e8e2 –
Jamie Wongへの最後のコメントはhttp://stackoverflow.com/questions/3596431/element-update-関数ではない3-jquery/3611339#3611339 –