`dirname ':nilをStringに変換できません(TypeError)

私はこれが本当にキュウリであるかどうかは分かりませんが、あなたの中にはこれを修正する方法の手掛かりがある場合もあります。基本的に、私のテストは突然動作を停止し、私がチェックしたときに、このエラーが示されました:

C:/Vendor/Ruby187/lib/ruby/gems/1.8/gems/cucumber-rails-1.0.0/lib/cucumber/rails3.rb:3 in 'dirname': can't convert nil into String (TypeError)

はい、私は最初に目を覚まし、Windowsを呪われましたが、私はMacで試してみましたが、私は同じことをしました:

/Users/eumir/.rvm/gems/[email protected]/gems/cucumber-rails-0.5.2/lib/cucumber/rails3.rb:3:in `dirname': can't convert nil into String (TypeError)

奇妙なことに、さまざまなキュウリのレールのバージョンでは、私はグーグルで、最初の結果は、それがバウンダリーのせいであることを示しています(私はその要点を解読することはできません...おそらく貼り付けたものをコピーしますか?実行中で、 rspec spec の実行中にこの問題が発生します。

下の3つの手がかりはキュウリのせいではないが、なぜキュウリを責めるのか?あなたの誰かが、なぜこれが起こっているのかを知る手がかりを与えることができれば、あなたは数時間以上の苦痛から私を救うでしょう。

14

3 答え

これは、バンドラーがどのように宝石を「自動取得」しようとしているかによって引き起こされました。 1.0では、bundlelerはgem名(この場合は "cucumber-rails")を試し、ファイルが見つからない場合はエラーを発生させます(そうでない場合)。

バンドラ1.1.1では、バンドラは " - "のインスタンスを "/"に置き換え、その結果、 "キュウリ/レール"を自動取得し、Ewoutによって記述された "偶発的な"ロードを引き起こします。

To resolve, set :require => false in your gemfile.

(Note: :require => false doesn't mean that the gem is optional, just that Bundler shouldn't auto-require it)

20
追加された

新しいキュウリレールのバージョンは、この問題について警告します。キュウリレールはenv.rbファイルから必要とされるべきであり、かつバンドラによって以前には要求されていないはずです。これを実現するには、Gemfile内のグループ:testに gem cucumber-rails 行を置いてください。

8
追加された
これは古いバージョンロックされたプロジェクトで私の仕事でした。特に VAR =(something)のようなコードが定義されていなければ、バンドルラーがあなたの宝石を自動読み込みすることを知っていますか? VAR を古い宝石の中に(このプロジェクトのように)
追加された 著者 Eric Drechsel,

aslakが彼の返答で言うように:

http://groups.google.com/group/cukes/msg/803836e9f6e7f1be

私はちょうどキュウリのレールをアップグレードする必要がありました。 @Ewoutは正しい方向に私を指してくれたので、彼はまた+1に値します:)

2
追加された