Rspec 命名错误:未定义的方法&x2018;描述&x2019;对于main:textmate中的对象错误

Rspec 命名错误:未定义的方法&x2018;描述&x2019;对于main:textmate中的对象错误,rspec,Rspec,我试图运行rspec测试,但我似乎无法让它在我的计算机上运行 麦克 player_spec.rb文件包含: require 'player' describe Player do end 所有其他相关文件都在同一文件夹中 从命令行运行rspec player_spec.rb生成 以下错误: /Users/lloyd_treleven/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.r

我试图运行rspec测试,但我似乎无法让它在我的计算机上运行 麦克

player_spec.rb
文件包含:

require 'player'

describe Player do


end
所有其他相关文件都在同一文件夹中

从命令行运行
rspec player_spec.rb
生成 以下错误:

/Users/lloyd_treleven/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in
`require': cannot load such file -- player (LoadError)
  from
/Users/lloyd_treleven/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in
`require'
  from /Users/lloyd_treleven/studio_game/player_spec.rb:1:in `<top
(required)>'
  from
/Users/lloyd_treleven/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.10.1/lib/rspec/core/configuration.rb:746:in
`load'
  from
/Users/lloyd_treleven/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.10.1/lib/rspec/core/configuration.rb:746:in
`block in load_spec_files'
  from
/Users/lloyd_treleven/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.10.1/lib/rspec/core/configuration.rb:746:in
`map'
  from
/Users/lloyd_treleven/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.10.1/lib/rspec/core/configuration.rb:746:in
`load_spec_files'
  from
/Users/lloyd_treleven/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.10.1/lib/rspec/core/command_line.rb:22:in
`run'
  from
/Users/lloyd_treleven/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.10.1/lib/rspec/core/runner.rb:69:in
`run'
  from
/Users/lloyd_treleven/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.10.1/lib/rspec/core/runner.rb:10:in
`block in autorun'
目前我已经安装了
rvm 1.13.4

rspec (2.10.0)
rspec-core (2.10.1)
rspec-expectations (2.10.0)
rspec-mocks (2.10.1)
目前我正在运行ruby 1.9.3p194(2012-04-20修订版35410)[x86_64-darwin10.8.0]

当我运行via textmate时,我收到以下错误消息:

NoMethodError: undefined method ‘describe’ for main:Object
我安装了RSpec textmate捆绑包:

mkdir -p ~/Library/Application\ Support/TextMate/Pristine\ Copy/Bundles
cd ~/Library/Application\ Support/TextMate/Pristine\ Copy/Bundles
git clone git://github.com/rspec/rspec-tmbundle.git RSpec.tmbundle
osascript -e 'tell app "TextMate" to reload bundles'

我做错了什么?

找到了我需要的答案,需要在ruby文件顶部添加相对的“player”?一旦我这样做了,我就能够从命令行运行rspecplayer_spec.rb并执行测试。TextMate仍然抛出NoMethodError错误。我将检查textmate rspec捆绑包的安装是否正确。

您必须使用终端访问当前子文件夹:例如“lib”或“spec” 我也犯了同样的错误,花了很长时间才发现:
cd spec
然后
rspec 00\u hello\u spec.rb

为我工作

我最近遇到了类似的情况,看起来您有两个问题:

  • 文件加载错误:rspec找不到您的
    player.rb
    文件
  • 缺少方法错误:rspec对谁负责感到困惑 那
    描述
  • 因为我不确定您的文件树是如何设置的,所以我们可以这样说:

    /studio_game
      /lib
        player.rb
      /spec
        player_spec.rb
        spec_helper.rb
      Gemfile
      Gemfile.lock
      .rspec
    
    --require spec_helper  #<-- problematic for me
    --color
    --format doc
    
    要解决
    LoadError
    ,您需要确保
    player_spec.rb
    文件可以找到您的
    player.rb
    文件。你可以这样做

    # like this:
    require_relative '../lib/player'
    
    # or like this:
    require 'player'
    
    现在开始解决缺少的
    描述
    方法错误。当我遇到这个问题时,我发现我的
    .rspec
    文件需要
    spec\u helper
    ,如下所示:

    /studio_game
      /lib
        player.rb
      /spec
        player_spec.rb
        spec_helper.rb
      Gemfile
      Gemfile.lock
      .rspec
    
    --require spec_helper  #<-- problematic for me
    --color
    --format doc