Rspec 命名错误:未定义的方法&x2018;描述&x2019;对于main:textmate中的对象错误
我试图运行rspec测试,但我似乎无法让它在我的计算机上运行 麦克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
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
为我工作 我最近遇到了类似的情况,看起来您有两个问题:
player.rb
文件描述块
/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