2011-11-29 61 views
5

我試圖用ruby和Watir-webdriver開始一些測試自動化。錯誤:執行gem時...(NoMethodError)未定義的方法'spec'爲零:NilClass

sudo apt-get install ruby rubygems

sudo gem install watir-webdriver

每當我創業板安裝我得到這些錯誤,如:

[/usr/lib/ruby/gems/1.8/specifications/selenium-webdriver-2.13.0.gemspec] isn't a Gem::Specification (NilClass instead). 
ERROR: While executing gem ... (NoMethodError) 
    undefined method `spec' for nil:NilClass 
+0

順便說一句:如果你是Ruby的新手,並且主要將它用於腳本和自動化,那麼我強烈推薦Brian Marick的'Everyday Scripting with Ruby'作爲一本好書讓你開始。您可以直接從Pragmatic Programmers以電子書格式獲得相當合理的價格。也可以看看Zeljko Filipin的(正在進行的)'Watir Book'(https://github.com/zeljkofilipin/watirbook/downloads)目前免費(但我相信作者不會拒絕捐贈) ,或者特別是來自Watir和Ruby的新手的反饋) –

回答

4

問題是由於損壞的下載被存儲在緩存中,所以即使在gem uninstall並重新安裝之後,錯誤仍然存​​在。爲了強制重新下載,我清空了在命令gem env的輸出中通過檢查GEM PATHS下的緩存目錄。

+1

如果這解決了問題,您應該接受您的答案。我會建議如果你沒有這樣看待RVM,它會讓管理ruby和gem等版本更容易。在升級Ruby語言或者對其他寶石具有很多依賴性的特定寶石的時候,它也使事情變得更容易。 –

+0

+1,如果您收到gemspecs警告,也是空的規格。 –

2

你應該嘗試使用Ruby 1.9.x的

最簡單的方法是使用RVM:

sudo apt-get install git 
bash < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer) 
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # This loads RVM into a shell session. 
rvm install 1.9.2 
rvm use 1.9.2 
gem install watir-webdriver 
+0

使用腳本時出現類似錯誤:錯誤:執行gem時(NoMethodError)未定義方法'spec'for nil:NilClass'' – wim

+5

Don'使用sudo安裝您期望與RVM託管Ruby一起使用的寶石。 –

相關問題