Rspec中的Rake Ruby不起作用

时间:2013-03-18 19:09:37

标签: ruby rspec cmd rake

我在使用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中标题程序并定义方法。这应该可以解决所有错误,但我仍然有一个从一开始就做的长错误。

有人可以告诉我这里发生了什么以及为什么耙子被中止了。我不知道它试图在这里告诉我什么。谢谢!如果我不够具体,请告诉我。

1 个答案:

答案 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才能得到它。