1

$ gem install cucumber用 Ruby 2.0.0(在 FreeBSD 9.1-i386 GENERIC 上)在 RVM 上做了一个简单的操作,当我运行时$ cucumber出现以下错误:

uninitialized constant Cucumber::RUBY_1_8_7 (NameError)
/home/black/.rvm/gems/ruby-2.0.0-p0@cucumber/gems/cucumber-1.3.2/lib/cucumber/constantize.rb:36:in `constantize_name'
/home/black/.rvm/gems/ruby-2.0.0-p0@cucumber/gems/cucumber-1.3.2/lib/cucumber/constantize.rb:12:in `block in constantize'
/home/black/.rvm/gems/ruby-2.0.0-p0@cucumber/gems/cucumber-1.3.2/lib/cucumber/constantize.rb:11:in `each'
/home/black/.rvm/gems/ruby-2.0.0-p0@cucumber/gems/cucumber-1.3.2/lib/cucumber/constantize.rb:11:in `constantize'
/home/black/.rvm/gems/ruby-2.0.0-p0@cucumber/gems/cucumber-1.3.2/lib/cucumber/runtime/support_code.rb:73:in `load_programming_language'
/home/black/.rvm/gems/ruby-2.0.0-p0@cucumber/gems/cucumber-1.3.2/lib/cucumber/runtime/support_code.rb:194:in `programming_language_for'
/home/black/.rvm/gems/ruby-2.0.0-p0@cucumber/gems/cucumber-1.3.2/lib/cucumber/runtime/support_code.rb:178:in `load_file'
/home/black/.rvm/gems/ruby-2.0.0-p0@cucumber/gems/cucumber-1.3.2/lib/cucumber/runtime/support_code.rb:83:in `block in load_files!'
/home/black/.rvm/gems/ruby-2.0.0-p0@cucumber/gems/cucumber-1.3.2/lib/cucumber/runtime/support_code.rb:82:in `each'
/home/black/.rvm/gems/ruby-2.0.0-p0@cucumber/gems/cucumber-1.3.2/lib/cucumber/runtime/support_code.rb:82:in `load_files!'
/home/black/.rvm/gems/ruby-2.0.0-p0@cucumber/gems/cucumber-1.3.2/lib/cucumber/runtime.rb:183:in `load_step_definitions'
/home/black/.rvm/gems/ruby-2.0.0-p0@cucumber/gems/cucumber-1.3.2/lib/cucumber/runtime.rb:42:in `run!'
/home/black/.rvm/gems/ruby-2.0.0-p0@cucumber/gems/cucumber-1.3.2/lib/cucumber/cli/main.rb:47:in `execute!'
/home/black/.rvm/gems/ruby-2.0.0-p0@cucumber/gems/cucumber-1.3.2/bin/cucumber:13:in `<top (required)>'
/home/black/.rvm/gems/ruby-2.0.0-p0@cucumber/bin/cucumber:23:in `load'
/home/black/.rvm/gems/ruby-2.0.0-p0@cucumber/bin/cucumber:23:in `<main>'
/home/black/.rvm/gems/ruby-2.0.0-p0@cucumber/bin/ruby_noexec_wrapper:14:in `eval'
/home/black/.rvm/gems/ruby-2.0.0-p0@cucumber/bin/ruby_noexec_wrapper:14:in `<main>'

你有类似的问题吗?

提前感谢您的帮助。

PS:我的宝石清单是:

bigdecimal (1.2.0)
builder (3.2.2)
bundler (1.3.5)
cucumber (1.3.2)
diff-lcs (1.2.4)
gherkin (2.12.0)
io-console (0.4.2)
json (1.7.7)
minitest (4.3.2)
multi_json (1.7.7)
psych (2.0.0)
rake (10.0.4, 0.9.6)
rdoc (4.0.0)
rubygems-bundler (1.1.1)
rvm (1.11.3.7)
test-unit (2.0.0.0)
4

2 回答 2

1

中断的代码已在 master 中删除,请尝试:

bundle init # create a Gemfile
echo "gem 'cucumber', :git => 'https://github.com/cucumber/cucumber.git'"
bundle install
bundle exec cucumber

如果您想以这种方式使用任何额外的宝石,您需要将它们放入Gemfile您可以阅读更多信息并bundler访问它的网站: http: //gembundler.com

于 2013-06-29T14:41:52.787 回答
0

貌似是Cucumber版本的bug 1.3.2,应该是相对修复的。

  1. 查找cucumber/constantize

    gem which cucumber/constantize
    

    在您的情况下,它应该是:

    /home/black/.rvm/gems/ruby-2.0.0-p0@cucumber/gems/cucumber-1.3.2/lib/cucumber/constantize.rb
    
  2. 编辑此文件并在开头添加此文本:

    require 'cucumber/platform'
    
于 2013-06-26T00:54:19.043 回答