如何解决一个黄瓜“无法加载这样的文件”的警告?

我试图通过“黄瓜书”,但黄瓜没有像预期的那样行事。

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

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

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 

这样做会持续一段时间,列出更多被检查的path,然后是'恢复到Ruby词法分析器',并且发现'没有词法分析器被find(不能加载这样的文件–gherkin / lexer / en)…'

基于它正在检查的path好像它想要'gherkin-2.11.6-x86-mingw32 / lib'文件夹中的'2.0'文件夹,这显然不存在。 然而,有'1.8'和'1.9'文件夹似乎有'gherkin_lexer_en'文件(实际上是'gherkin_lexer_en.so')。

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

如何让黄瓜查看我的文件夹中的一个,或者select一个可以接受的2.0文件夹?

在Windows上,你将不得不暂时使用Ruby 1.9。 目前还没有发布一个Ruby 2.0版本的小黄瓜。

$ 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日

为我工作像魅力..

如果你正在使用小黄瓜版本2.12.1,你现在应该可以在Windows上使用ruby 2.0。

首先,安装带有–ignore-dependencies选项的gherkin-2.12.1。

共振–ignore-dependencies选项是必需的是,没有指定它,它会安装json 1.4.X这是非常旧的版本,无法安装在Ruby 2.0。

在这一点上,你应该能够在ruby 2.0上使用红宝石,但是你会看到上面的错误信息作为警告信息。 这意味着你仍然可以使用黄瓜,虽然你看到的消息。

如果您想删除错误,请按照下面的步骤操作。

  1. 在[ruby安装目录] \ lib \ ruby​​ \ gems \ 2.0.0 \ gems \ gherkin-2.12.1 \ lib(此文件夹包含gherkin_lexer_XX.so)上创建[2.0]文件夹。

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