我在使用rake时遇到了麻烦。我正在研究这个介绍rspec的课程。 它首先说安装rspec所以我输入gem install rspec。
ruby 1.9.3p385 (2013-02-06) [i386-mingw32]
C:\Users\Edub>gem install rspec
Successfully installed rspec-2.13.0
1 gem installed
然后我应该进入课程目录,即cd learn_ruby,然后是cd 00_hello,但是只有在我输入cd学习时才能工作.school_ruby-master \ learn_ruby-master \ 00_hello
C:\Users\Edub>cd learn_ruby-master\learn_ruby-master\00_hello
然后我尝试使用rake,就像它指示我做的那样,我得到了一些错误。我真的不知道他们的意思。
C:\Users\Edub\learn_ruby-master\learn_ruby-master\00_hello>rake
(in C:/Users/Edub/learn_ruby-master/learn_ruby-master)
You must use ANSICON 1.31 or later (http://adoxa.3eeweb.com/ansicon/) to use
col
our on Windows
C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:45:in
'require': cannot load such file -- hello (LoadError)
from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_requir
e.rb:45:in `require'
from C:/Users/Edub/learn_ruby-master/learn_ruby-master/00_hello/hello_sp
ec.rb:116:in `<top (required)>'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rspec-core-2.13.0/lib/rspec/cor
e/configuration.rb:819:in `load'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rspec-core-2.13.0/lib/rspec/cor
e/configuration.rb:819:in `block in load_spec_files'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rspec-core-2.13.0/lib/rspec/cor
e/configuration.rb:819:in `each'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rspec-core-2.13.0/lib/rspec/cor
e/configuration.rb:819:in `load_spec_files'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rspec-core-2.13.0/lib/rspec/cor
e/command_line.rb:22:in `run'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rspec-core-2.13.0/lib/rspec/cor
e/runner.rb:80:in `run'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rspec-core-2.13.0/lib/rspec/cor
e/runner.rb:17:in `block in autorun'
rake aborted!
C:/Ruby193/bin/ruby.exe -S rspec C:/Users/Edub/learn_ruby-master/learn_ruby-
master/00_hello/hello_spec.rb -IC:/Users/Edub/learn_ruby-master/learn_ruby-
master/00_hello -IC:/Users/Edub/learn_ruby-master/learn_ruby-
master/00_hello/solution -fdocumentation -r ./rspec_config failed
Tasks: TOP => default => spec
(See full trace by running task with --trace)
然后该课程表示应该发生错误,并且它应该是这样的:
no such file to load -- test-first-teaching/hello/hello (LoadError)
好的,然后它指示我必须在名为hello.rb的文本编辑器中定义一个方法 代码应如下所示:
def hello
"Hello!"
end
所以我继续说明并在Sublime 2中完成所有这些。我在Sublime 2 hello.rb中标题程序并定义方法。这应该可以解决所有错误,但我仍然有一个从一开始就做的长错误。
有人可以告诉我这里发生了什么以及为什么耙子被中止了。我不知道它试图在这里告诉我什么。谢谢!如果我不够具体,请告诉我。
答案 0 :(得分:1)
我对红宝石非常陌生,但书中的说明似乎没有了。我的理解是rake需要定义rake任务才能工作。它不像你可以做的红宝石翻译:
ruby <ruby_file.rb>
它想出解释文件。
尝试查看此网站:http://rake.rubyforge.org/
它给出了一些关于创建rake任务的介绍(我之前没有真正做过很多;在工作中,其他人已经编写了rake任务,我只是使用它们执行它们):
rake <task>
我希望能让你开始。
编辑:
如果您按照我链接的网站说明进行操作,我认为在您的情况下,您会执行以下操作:
task :default => [:test]
task :test do
ruby "hello.rb"
end
然后运行:
rake
或
rake test
rake默认值是在您未指定任何任务时运行的任务(换句话说,您只运行“rake”),在这种情况下,它是:test任务的别名。如果您愿意,可以将:test命名为其他内容,但是您需要将默认值更改为指向该新符号。
我也相信耙子是一颗宝石。我认为它通常默认安装在Ruby中,但如果你转到命令行并执行:
gem query --local
并且看不到那里的佣金,你必须做gem install rake
才能得到它。