[解決済み] テスト環境でRailsコンソールを実行し、test_helper.rbを読み込むには?
質問
背景を教えてください。Thoughtbot の "Factory Girl" gem で、ユニット テストやその他のテストで使用するオブジェクトを作成するために使用する、いくつかの問題があります。コンソールでファクトリーガールのさまざまな呼び出しを実行して、何が起こっているかをチェックしたいのです。たとえば、次のようなことを行ってみたいと思います。
>> Factory(:user).inspect
異なる環境でコンソールを実行できることは知っていますが......。
$ script/console RAILS_ENV=test
しかし、これを実行すると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
Grr. Argh.
どのように解決するのですか?
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
.
関連
-
[解決済み】ActionController::InvalidAuthenticityTokenについて
-
[解決済み] heroku push rejected, failed to compile Ruby/rails app
-
[解決済み] Railsマイグレーションを利用してカラムをドロップする方法
-
[解決済み] Oauth2 Instagram API "リダイレクトURIが登録されたリダイレクトURIと一致しない"
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] Ruby/RailsでHashからキーを削除して残りのHashを取得する方法は?
-
[解決済み] Gradleを使用して1つのユニットテストクラスのみを実行する方法
-
[解決済み】Railsの認証トークンを理解する
-
[解決済み】Ruby on Railsでコンソールからコントローラ/ビューヘルパーメソッドを呼び出すにはどうすればよいですか?
-
[解決済み】RSpecのテストを1つだけ実行するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】bundle installが "Could not locate Gemfile "を返す。
-
[解決済み】Bundler: コマンドが見つからない
-
[解決済み】TypeError: SymbolからIntegerへの暗黙の変換がない。
-
[解決済み] rake db:migrateを使って1ステップだけロールバックする方法
-
[解決済み] 該当するルートがない [GET] "demo/hello"
-
[解決済み] Rails ExecJS::ProgramError in Pages#home?
-
[解決済み] rails erb フォームヘルパー options_for_select :selected
-
[解決済み] railsでhidden fieldタグを使用する方法
-
[解決済み] Rails / Haml: 投稿フォームを作成するには?
-
[解決済み] Railsコンソール:リロード!モデルファイルの変更が反映されない?考えられる理由は何でしょうか?