10

我正在尝试阅读“黄瓜书”,但黄瓜的行为不如预期。

我在 Windows 7(32 位)上,我有理由相信我已经正确安装了 Ruby 和必要的 gem。

但是,当我运行 cucumber 时,我收到以下消息:

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)...”

根据它正在检查的路径,它似乎想要在“gherkin-2.11.6-x86-mingw32/lib”文件夹中有一个“2.0”文件夹,这显然不存在。但是,“1.8”和“1.9”文件夹似乎有“gherkin_lexer_en”文件(实际上是“gherkin_lexer_en.so”)。

作为一个疯狂的猜测,我复制了 1.9 文件夹并将其命名为 2.0。我真的没想到这会奏效,但认为值得一试。

如何让 cucumber 查看我拥有的文件夹之一,或者获得一个可以接受的 2.0 文件夹?

4

3 回答 3

5

$ 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 于 2014 年 1 月 18 日发表评论

像魅力一样为我工作..

于 2015-06-29T11:02:22.107 回答
2

在 Windows 上,您暂时必须使用 Ruby 1.9。目前还没有发布小黄瓜的 Ruby 2.0 版本。

于 2013-03-04T16:19:46.297 回答
-1

如果您使用的是 gherkin ver 2.12.1,您现在应该可以在 Windows 上使用 cucumber 和 ruby​​ 2.0。

 

首先,使用 --ignore-dependencies 选项安装 gherkin-2.12.1。

reson --ignore-dependencies 选项是必需的,如果不指定它,它将安装非常旧的 json 1.4.X 版本并且无法在 ruby​​ 2.0 上安装。

 

此时,您应该可以在 ruby​​ 2.0 上使用 ruby​​ cucumber,但是您会看到像上面这样的错误消息作为警告消息。这意味着尽管您看到了这条消息,但您仍然可以使用黄瓜。

 

如果要删除错误,请按照以下步骤操作。

 

  1. 在 [ruby installed dir]\lib\ruby\gems\2.0.0\gems\gherkin-2.12.1\lib 上创建 [2.0] 文件夹(该文件夹包括 gherkin_lexer_XX.so)。

  2. 将 [ruby installed dir]\lib\ruby\gems\2.0.0\gems\gherkin-2.12.1\lib 中的所有内容复制到创建的 [2.0] 文件夹中(您不需要复制 [2.0] 文件夹创建)。

于 2013-08-21T12:37:18.830 回答