0

アプリが開発モードで実行されているときに実行する必要があるいくつかの初期化コードを含む Rails アプリがあります。ただし、このイニシャライザ コードは、テストの実行時に実行してはなりません。

私はそれを確立しました

$ rake test

アプリが開発モードで実行され、初期化コードが呼び出されるため、テストが中断されます。これは明らかに予想される動作です ( https://github.com/rails/rails/issues/9801を参照)。

アプリを開発モードで起動せずにRailsアプリのテストを実行する正しいコマンドは何ですか?

4

3 に答える 3

1

あなたの test_helper.rb ファイルはデフォルトのように見えますか? 次で始まる必要があります。

ENV["RAILS_ENV"] = "test"
于 2013-03-19T14:08:44.070 に答える
0

明示的な環境で rake タスクを実行してみてください。

rake test:units RAILS_ENV=test

私の経験では、環境を指定しない場合は、開発が想定されます。また、テスト データベースにはまだフィクスチャ データが挿入されていますが、何らかの理由で開発環境からのものがまだ参照されています。

于 2013-03-19T14:02:35.273 に答える
0

test_helper.rb ファイルの先頭に次の行が必要です。

Rails.env = "test"

使えません

ENV["RAILS_ENV"] = "test"

Rails.env の呼び出しから返されるキャッシュされた値のクリアに失敗するためです。

于 2014-03-04T03:57:06.500 に答える