2013-06-24 29 views
1

我在RVM上用Ruby 2.0.0(在FreeBSD 9.1-i386 GENERIC上)完成了一個簡單的$ gem install cucumber,並且當我運行$ cucumber時出現以下錯誤:Cucumber,RVM,Ruby 2.0.0和1_8_7常量錯誤

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

是這個空目錄嗎?有沒有文件?也許'Gemfile'? – mpapis

+0

我從Cucumber git倉庫的示例子目錄運行它。所以,有文件,但沒有Gemfile。 – GlinesMome

回答

1

打破在主除去代碼,請嘗試:

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

+1

此錯誤現在已在最新的1.3.3版本中得到修復。 Master分支目前正在向Cucumber 2.0發佈,因此可能會在生產中使用它。因人而異。 – Tooky

0

看起來像1.3.2Cucumber版中的錯誤,它應該是相對固定。

  1. 查找cucumber/constantize

    gem which cucumber/constantize 
    
    你的情況

    它應該是:

    /home/black/.rvm/gems/[email protected]/gems/cucumber-1.3.2/lib/cucumber/constantize.rb 
    
  2. 編輯這個文件,並在開頭添加這樣的文字:

    require 'cucumber/platform' 
    
+0

不錯的嘗試,但我有同樣的錯誤:/ – GlinesMome

+0

有一個檢查'除非定義?(Cucumber :: VERSION)'在'/home/black/.rvm/gems/[email protected]/gems/cucumber-1.3.2/lib/cucumber/platform.rb'從最後刪除它和一個雙'end',rubys'require'負責避免重載。 – mpapis

+0

沒有變化,對不起。 – GlinesMome