我正在尝试完成TestFirst.org learn_ruby课程,并且我在第一个课程开始时就被卡住了。
我在目录00_hello
打开一个终端窗口,就像说明说的那样。但是当我去运行第一个测试“rake”(它应该在它通过之前失败几次)之后,我得到一个奇怪的错误信息,我似乎无法追查。
Michaels-MacBook-Pro:00_hello TheRedFool$ rake
(in /Users/TheRedFool/learn_ruby-master)
rake aborted!
undefined method `gem' for main:Object
/Users/TheRedFool/learn_ruby-master/Rakefile:2
(See full trace by running task with --trace)
然后当我用跟踪运行它时。
Michaels-MacBook-Pro:00_hello TheRedFool$ rake --trace
(in /Users/TheRedFool/learn_ruby-master)
rake aborted!
undefined method `gem' for main:Object
/Users/TheRedFool/learn_ruby-master/Rakefile:2
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rake.rb:2383:in `load'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rake.rb:2383:in `raw_load_rakefile'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rake.rb:2017:in `load_rakefile'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rake.rb:2068:in `standard_exception_handling'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rake.rb:2016:in `load_rakefile'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rake.rb:2000:in `run'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rake.rb:2068:in `standard_exception_handling'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rake.rb:1998:in `run'
/usr/bin/rake:31
任何帮助都将非常感激。提前致谢!
答案 0 :(得分:3)
我使用rspec代替rake工作。我通过这种方式完成了第一课。
jrw@mobile0:~/.../00_hello$ rspec -r hello_spec.rb
我认为rake不承认RubyGems,但我不确定为什么。我正在使用Ubuntu,因此Debian可能与它有关。无论如何,在rake得到修复之前,rspec应该是一个足够的替代品。
修改强>
我找出了真正的问题。导航到Test First Ruby主文件夹并在文本编辑器中打开Rakefile
。在显示gem 'rspec', '~>2'
:
require 'rubygems'
在Ruby 1.9.1中不需要这一行,但是你和我正在运行1.8。
如果由于某种原因仍然不适合您,您可以在练习文件夹中使用此命令,它应该与键入rake
完全相同,但没有错误:
jrw@mobile0:~/.../00_hello$ rspec -I. -f d -r ../rspec_config *_spec.rb
答案 1 :(得分:1)
看起来宝石在您的系统上已经过时了。尝试:
gem update --system