【问题标题】:Test-First Ruby Hello Lab测试优先 Ruby Hello 实验室
【发布时间】:2012-12-25 22:04:39
【问题描述】:

Alex Chaffee 的 test-first ruby​​ 课程教授如何使用 rspec。我目前坚持第一次练习,00_hello。我按照指示创建了一个文件hello.rb,其中包含代码:

def hello
   "Hello!"
end

并将其放在目录00_hellohello_specs.rb 中。当我从目录00_hello 在终端中键入rake 时,我收到以下错误,这与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

【问题讨论】:

  • . 默认不在 LOAD_PATH 中。

标签: ruby rspec


【解决方案1】:

您是否尝试过从 test-first 课程的根目录运行 rake?

halfelf 也可能是对的,也许他们一直在运行 ruby​​ 1.8,其中包含 . 到 $LOAD_PATH 中,而您正在运行的 1.9.3 没有这样做,因为 require_relative 等不需要。

【讨论】:

  • 感谢 Phil 的回复,当我从根目录运行 rake 时,我收到错误:No examples matching /Users/stevenjli/Documents/App Academy/learn_ruby-master/*_spec.rb could be found 我还使用了 require "{actual path to file}",我收到错误 @987654324 @
  • 您不能从 test-first 课程的根目录运行rake,因为在Rakefile 中它使用task.pattern = "#{lab}/*_spec.rb" 模式,其中lab 是课程的特定文件夹。例如。 00_hello
  • 他的输出表明 rake 在learn_ruby-master 的根目录中寻找*_spec.rb?也要求似乎是错误的,他试图在根目录中要求00_hello
【解决方案2】:

检查 00_hello 文件夹的目录结构。应该是这样的

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

learn_ruby 提供的Rakefile 负责将正确的目录添加到加载路径,因此您不必担心它,除非您在不了解的情况下更改了它。

如果您仍有问题,请在此处发布您的Rakefile

【讨论】:

  • 感谢大家的回复。我最终通过用“require_relative”替换“require”并用rspec而不是rake调用来修复它。
【解决方案3】:

如果它对任何人有帮助,我在 ruby​​ 1.9.3 上遇到了完全相同的问题。我的解决方案有三方面:

  1. 运行gem install rspec; bundle update; bundle install
  2. CD 到 00_hello,然后编辑require 行以读取require './hello'
  3. 运行rspec hello_spec.rb

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多