テスト環境で Rails コンソールを実行して test_helper.rb をロードするにはどうすればよいでしょうか? 質問する

テスト環境で Rails コンソールを実行して test_helper.rb をロードするにはどうすればよいでしょうか? 質問する

背景: ユニット テストやその他のテストで使用するオブジェクトを作成するために使用される Thoughtbot の「Factory Girl」 gem で問題が発生しています。コンソールにアクセスしてさまざまな Factory Girl 呼び出しを実行し、何が起きているのか確認したいと思います。たとえば、次の操作を実行したいのですが...

>> Factory(:user).inspect

コンソールをさまざまな環境で実行できることは知っています...

$ スクリプト/コンソール RAILS_ENV=テスト

しかし、そうすると、Factory クラスが利用できなくなります。test_helper.rbロードされていないように見えます。

require絶対パスを含むさまざまな呼び出しを試みましたtest_helper.rbが、次のように失敗します。

$ script/console RAILS_ENV=test
>> require '/Users/ethan/project/contactdb/test/test_helper.rb'
  Errno::ENOENT: No such file or directory - 
  /Users/ethan/project/contactdb/config/environments/RAILS_ENV=test.rb

うーん。あぁ。

ベストアンサー1

Rails < 3.0の場合

を実行しますscript/console --help。構文は でありscript/console [environment]、この場合は であることがわかりますscript/console test

テスト ヘルパーを要求する必要があるのか​​、それともテスト環境が自動的にそれを実行するのかはわかりませんが、そのコマンドを使用すると、少なくともテスト環境に正常に起動できるはずです。

補足として、script/ 内のさまざまなバイナリが Rails 環境を設定する方法が異なるのは、確かに奇妙なことです。

Rails 3および4の場合

を実行しますrails c testbundle exec現在のアプリ環境でこれが必要な場合は先頭に追加します。

Rails 5および6の場合

走るrails console -e test

おすすめ記事