`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)

Странно, но в разных версиях рельефа огурца я искал googled, и первый результат показывает, что это ошибка (хотя я не могу расшифровать, что такое суть... может быть, просто скопировать наклеенные материалы?) и самое странное из всех, Cucumber IS запущен, и я столкнулся с этой проблемой во время работы rspec spec.

В приведенных ниже трех подсказках говорится, что это не огурец, но почему он обвиняет огурец? Если кто-то из вас может прояснить, почему это происходит, вы будете спасать меня от нескольких часов боли.

Ответы

Ответ 1

Как говорит аслак в своем ответе:

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

Мне просто нужно было обновить огуречные рельсы. @Ewout указал мне в правильном направлении, поэтому он также заслуживает +1:)

Ответ 2

Это было вызвано тем, как провайдер пытается "самообслуживать" драгоценные камни. В 1.0 связующий пытается узнать имя жемчужины (в данном случае "огуречные рельсы" ) и заглушает ошибку, если файл не найден (это не так).

В связующем 1.1.1 связка заменяет экземпляры "-" на "/", что приводит к автообновлению "огурцов/рельсов", что приводит к "случайной" загрузке, описанной Ewout.

Чтобы решить, установите :require => false в свой gemfile.

(Примечание: :require => false не означает, что драгоценный камень является необязательным, только этот Bundler не должен автоматически запрашивать его)

Ответ 3

Новые версии огурцов-рельсов предупреждают вас об этой проблеме. Из файла env.rb следует использовать огуречные рельсы, а не раньше. Для этого поместите строку gem cucumber-rails в группу: test в вашем Gemfile.