Как устранить предупреждение Cucumber «не удается загрузить такой файл»?

Я пытаюсь работать с «Книгой огурцов», но Cucumber ведет себя не так, как ожидалось.

У меня Windows 7 (32-разрядная версия), и я достаточно уверен, что Ruby и необходимые драгоценные камни установлены правильно.

Однако, когда я запускаю огурец, я получаю следующее сообщение:

WARNING: cannot load such file -- 2.0/gherkin_lexer_en
Couldn't load 2.0/gherkin_lexer_en
The $LOAD_PATH was:
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.2.1/bin/../lib
C:/Ruby200/lib/ruby/gems/2.0.0/gems/gherkin-2.11.6-x86-mingw32/lib
C:/Ruby200/lib/ruby/gems/2.0.0/gems/builder-3.2.0/lib
C:/Ruby200/lib/ruby/gems/2.0.0/gems/diff-lcs-1.2.1/lib
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.2.1/lib

Это продолжается некоторое время, перечисляются другие пути, которые были проверены, а затем «Возврат к лексеру Ruby» и сообщение «Нет лексера для en (невозможно загрузить такой файл --gherkin/lexer/en)...»

Судя по пути, который он проверяет, кажется, что ему нужна папка «2.0» в папке «gherkin-2.11.6-x86-mingw32/lib», которой, очевидно, не существует. Однако есть папки «1.8» и «1.9», в которых содержится файл «gherkin_lexer_en» (на самом деле «gherkin_lexer_en.so»).

В качестве дикой догадки я продублировал папку 1.9 и назвал ее 2.0. Я действительно не ожидал, что это сработает, но решил, что стоит попробовать.

Как заставить огурец искать в одной из папок, которые у меня есть, или, в качестве альтернативы, получить папку 2.0, которую он примет?


person dglass    schedule 27.02.2013    source источник


Ответы (3)


В Windows вам пока придется использовать Ruby 1.9. Сборка корнишона Ruby 2.0 еще не опубликована.

person joshuanapoli    schedule 04.03.2013
comment
ХОРОШО. Думаю, тогда я это сделаю. Спасибо. - person dglass; 05.03.2013
comment
Любое обновление? Поддерживается ли Ruby 2.0? Вроде так, насколько я вижу, но у меня все та же ошибка с корнишоном 2.11.7. - person Marco Bresciani; 08.04.2013
comment
Я просто установил Ruby 2.0.0 и снова попробовал гем-огурец. Я все еще получаю ту же ошибку. - person joshuanapoli; 24.04.2013
comment
См. groups.google.com/forum/?fromgroups=# !topic/calabash-android/ - person joshuanapoli; 24.04.2013
comment
Я работаю над Ruby 1.9, но все равно получаю ту же проблему. Огурец загружается, но не внутри .bundle, он отправляется в базовое местоположение. В чем может быть причина такого поведения?? - person Infant Dev; 30.07.2013
comment
Я считаю, что gem install ffi работал у меня на 2.0, с корнишоном 2.12.1. - person Nick; 24.09.2013

$ gem install gherkin --platform ruby

перейдите в папку ниже внутри вашего каталога установки ruby

{rubyDir}\lib\ruby\gems\2.0.0\gems\gherkin-2.12.2\lib\gherkin

может быть другой путь для вас, ребята

Измените *lib/gherkin/c_lexer.rb:7, измените значение префикса, как показано ниже:

prefix = ''

Ответ найден по ссылке ниже https://github.com/cucumber/gherkin/issues/273

с ответом mscharley прокомментировал 18 января 2014 г.

работал на меня как шарм ..

person maruti060385    schedule 29.06.2015
comment
Сначала мне пришлось удалить предыдущую версию огурца с помощью gem uninstall gherkin --force - person evedovelli; 27.08.2015

Если вы используете огурец версии 2.12.1, теперь вы сможете использовать огурец с рубином 2.0 в Windows.

 

Сначала установите корнишон 2.12.1 с параметром --ignore-dependencies.

Требуется параметр reson --ignore-dependencies, так как без его указания он установит json 1.4.X, очень старую версию, и не сможет установить его на ruby ​​2.0.

 

На этом этапе вы должны иметь возможность использовать ruby ​​огурец на ruby ​​2.0, но вы увидите сообщение об ошибке, подобное приведенному выше, в качестве предупреждающего сообщения. Это означает, что вы по-прежнему можете использовать огурец, несмотря на то, что видите сообщение.

 

Если вы хотите удалить ошибку, выполните следующий шаг.

 

  1. создайте папку [2.0] в [установленный каталог ruby]\lib\ruby\gems\2.0.0\gems\gherkin-2.12.1\lib (эта папка включает gherkin_lexer_XX.so).

  2. скопируйте все содержимое в [установленный каталог ruby]\lib\ruby\gems\2.0.0\gems\gherkin-2.12.1\lib в созданную папку [2.0] (вам не нужно копировать папку [2.0], которую вы созданный).

person take me there    schedule 21.08.2013