背景: ユニット テストやその他のテストで使用するオブジェクトを作成するために使用される 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 test
。bundle exec
現在のアプリ環境でこれが必要な場合は先頭に追加します。
Rails 5および6の場合
走るrails console -e test
。