ruby – `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/ruby-1.8.7-p174@mygemset/gems/cucumber-rails-0.5.2/lib/cucumber/rails3.rb:3:in `dirname': can't convert nil into String (TypeError)

奇怪的是,它在不同的黄瓜轨道版本,我googled和第一个结果显示它是捆绑的错误(虽然我不能破译什么是关键…可能只是复制粘贴的东西?),最奇怪的是,黄瓜IS运行rspec规范时遇到这个问题.

以下3条线索指出,这不是黄瓜的错,但是为什么它就是黄瓜呢?如果你们中的任何一个人可以看出为什么会发生这种情况,你将会从几个小时的痛苦中救出我.

解决方法

这是由于捆绑者试图“自动请求”宝石造成的.在1.0中,bundler尝试gem名称(在这种情况下为“cucumber-rails”),如果找不到该文件(不是),则会窒息错误.

在捆绑器1.1.1中,bundler将“ – ”的实例替换为“/”,导致它自动需要“cucumber / rails”,导致Ewout描述的“意外”加载.

解决,请设置:require =>在你的宝石文件中为false.

(注意:require => false并不意味着gem是可选的,只是Bundler不应该自动需要)

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...