2013-01-11 30 views
0

Alex Chaffee的測試第一課紅寶石課程教授如何使用rspec。我目前堅持第一次練習,00_hello。我跟着方向和創建的文件hello.rb其中包含的代碼:測試優先Ruby Hello實驗

def hello 
    "Hello!" 
end 

hello_specs.rb把它放在一個目錄00_hello。當我在終端從目錄00_hellorake,我得到了下面的錯誤,這是不喜歡rspec的錯誤:

(in /Users/stevenjli/Documents/App Academy/learn_ruby-master) 
/Users/stevenjli/Documents/App Academy/learn_ruby-master/00_hello/hello_spec.rb:116:in `require':  cannot load such file -- hello (LoadError) 
from /Users/stevenjli/Documents/App Academy/learn_ruby-master/00_hello/hello_spec.rb:116:in `<top (required)>' 
from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/rspec-core-2.12.2/lib/rspec/core/configuration.rb:789:in `load' 
from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/rspec-core-2.12.2/lib/rspec/core/configuration.rb:789:in `block in load_spec_files' 
from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/rspec-core-2.12.2/lib/rspec/core/configuration.rb:789:in `each' 
from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/rspec-core-2.12.2/lib/rspec/core/configuration.rb:789:in `load_spec_files' 
from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/rspec-core-2.12.2/lib/rspec/core/command_line.rb:22:in `run' 
from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/rspec-core-2.12.2/lib/rspec/core/runner.rb:80:in `run' 
from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/rspec-core-2.12.2/lib/rspec/core/runner.rb:17:in `block in autorun' 
rake aborted! 

/usr/local/rvm/rubies/ruby-1.9.3-p286/bin/ruby -S rspec /Users/stevenjli/Documents/App\   
Academy/learn_ruby-master/00_hello/hello_spec.rb -I/Users/stevenjli/Documents/App 
Academy/learn_ruby-master/00_hello -I/Users/stevenjli/Documents/App Academy/learn_ruby-master 
/00_hello/solution -f documentation -r ./rspec_config failed 

我猜有什麼毛病我的設置。這裏是我使用的版本。

  • 的Mac OS 10.8.2
  • 的Ruby版本1.9.3
  • 耙0.9.2.2
  • rspec的版本2.12.2
+0

'.'不LOAD_PATH默認。 – halfelf

回答

0

,你是否嘗試從根目錄下運行耙測試第一課?

而且halfelf可能是正確的,也許他們已經運行的Ruby 1.8,其中包括.到$ LOAD_PATH和你正在運行1.9.3不這樣做,因爲它沒有必要用require_relative

+0

感謝您對菲爾的迴應,當我從根目錄中的耙子運行時,出現錯誤:'沒有匹配/ Users/stevenjli/Documents/App Academy/learn_ruby-master/* _ spec.rb的示例' I也使用要求「{實際路徑文件}」,我得到錯誤'/usr/local/rvm/gems/ruby-1.9.3-p286/gems/rspec-core-2.12.2/lib/rspec/core/配置.rb:789:in load':無法加載此文件 -/Users/stevenjli/Documents/App Academy/learn_ruby-master/Academy/learn_ruby-master/00_hello(LoadError)' – User314159

+0

您無法運行'rake'從測試優先課程的根目錄,因爲在'Rakefile'中它使用'task.pattern =「#{lab}/* _ spec.rb」'模式,其中'lab'是課程的特定文件夾。例如。 '00_hello' –

+0

他的輸出表明rake在'learn_ruby-master'的根目錄中尋找'* _spec.rb'?此外,這個要求看起來不對,他試圖在根目錄中要求「00_hello」。 – PhilG

2

檢查00_hello文件夾的目錄結構。它應該是這樣的

├── hello.rb 
├── hello_spec.rb 
└── index.html 

通過learn_ruby給出Rakefile需要添加正確的目錄,除非你有什麼地方改變了它不理解,所以你不必擔心它加載路徑的護理。

如果仍然有問題,發表您的Rakefile這裏

+0

謝謝大家回覆。我最終通過用「require_relative」替換「require」並用rspec而不是rake調用來修復它。 – User314159

2

如果有幫助的人,我有紅寶石1.9.3完全相同的問題。我的解決辦法有三:

  1. 運行gem install rspec; bundle update; bundle install
  2. 光盤放入00_hello,然後編輯require行改爲require './hello'
  3. 運行rspec hello_spec.rb