Как разрешить предупреждение 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 lexer" и сообщение "Нет lexer найдено для 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, на которой он будет принимать?

Ответ 1

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

Ответ 2

$ gem install gherkin --platform 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 г.

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

Ответ 3

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

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

Требуется опция зависимостей от резонанса - независимо от того, что без указания его будет установлена ​​json 1.4.X, которая является очень старой версией и не может быть установлена ​​на ruby ​​2.0.

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

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

  • создать папку [2.0] в [ruby installed dir]\lib\ruby ​​\ gems\2.0.0\gems\gherkin-2.12.1\lib (эта папка включает gherkin_lexer_XX.so).

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