TestFirst Ruby课程的第一课

时间:2013-01-05 22:47:16

标签: ruby-on-rails ruby

我正在尝试完成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

任何帮助都将非常感激。提前致谢!

2 个答案:

答案 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