RSpec:未定义的方法'require#RSpec#u core';对于RSpec::支持:模块(NoMethodError)

RSpec:未定义的方法'require#RSpec#u core';对于RSpec::支持:模块(NoMethodError),rspec,chefspec,Rspec,Chefspec,我正在尝试使用ChefSpec运行HelloWorld类型的示例。我运行了$chef generate cookbook learn\u chef2,以生成具有适当目录结构的厨师烹饪书 然后,我在default.rb中创建了一个超级简单的厨师食谱: package 'ant' package 'php5' package 'git' 以及默认_spec.rb中的我的ChefSpec测试: #require 'spec_helper' require 'chefspec' require 'ch

我正在尝试使用ChefSpec运行HelloWorld类型的示例。我运行了
$chef generate cookbook learn\u chef2
,以生成具有适当目录结构的厨师烹饪书

然后,我在default.rb中创建了一个超级简单的厨师食谱:

package 'ant'
package 'php5'
package 'git'
以及默认_spec.rb中的我的ChefSpec测试:

#require 'spec_helper'
require 'chefspec'
require 'chefspec/berkshelf'

describe 'package::install' do

  let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }

  it 'converges successfully' do
    expect(chef_run).to install_package('ant')
  end
end
但是,当我运行rspec时,我会得到以下结果:

/var/lib/gems/2.1.0/gems/rspec-core-3.2.3/lib/rspec/core/formatters/progress_formatter.rb:1:in `<top (required)>': undefined method `require_rspec_core' for RSpec::Support:Module (NoMethodError)
    from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/lib/ruby/vendor_ruby/rspec/core/configuration.rb:1093:in `built_in_formatter'
    from /usr/lib/ruby/vendor_ruby/rspec/core/configuration.rb:573:in `add_formatter'
    from /usr/lib/ruby/vendor_ruby/rspec/core/configuration.rb:589:in `reporter'
    from /usr/lib/ruby/vendor_ruby/rspec/core/command_line.rb:25:in `run'
    from /usr/lib/ruby/vendor_ruby/rspec/core/runner.rb:80:in `run'
    from /usr/lib/ruby/vendor_ruby/rspec/core/runner.rb:17:in `block in autorun'
/var/lib/gems/2.1.0/gems/rspec-core-3.2.3/lib/rspec/core/formatters/progress\u formatter.rb:1:in`':rspec的未定义方法“require\u rspec\u core::Support:Module(NoMethodError)
from/usr/lib/ruby/2.1.0/rubygems/core\u ext/kernel\u require.rb:55:in'require'
from/usr/lib/ruby/2.1.0/rubygems/core\u ext/kernel\u require.rb:55:in'require'
来自/usr/lib/ruby/vendor_ruby/rspec/core/configuration.rb:1093:in'build_in_formatter'
来自/usr/lib/ruby/vendor\u ruby/rspec/core/configuration.rb:573:in'add\u formatter'
from/usr/lib/ruby/vendor_ruby/rspec/core/configuration.rb:589:in'reporter'
from/usr/lib/ruby/vendor\u ruby/rspec/core/command\u line.rb:25:in'run'
from/usr/lib/ruby/vendor_ruby/rspec/core/runner.rb:80:in'run'
from/usr/lib/ruby/vendor_ruby/rspec/core/runner.rb:17:in'block in autorun'
我是Ruby和RSpec的新手,我确信这是一个简单的配置问题。有什么想法吗


谢谢

通常您需要做的是
要求将'rspec'
作为第一行,但我很确定这是在
spec\u helper.rb
中编写的,您在第1行上注释掉了该文件。

两个未注释的
require
行来自生成的spec\u helper文件。在故障排除过程中,我认为应该删除spec_helper文件,并将其两行放在我的RSpec文件中。我根据您的建议添加了
要求“rspec”
,但得到了相同的结果。