0
我想获得与ChefSpec一起运行的HelloWorld类型示例。我跑$ chef generate cookbook learn_chef2
生成一个适当的目录结构的厨师食谱。RSpec:未定义的方法`require_rspec_core'为RSpec ::支持:模块(NoMethodError)
然后我创建了default.rb一个超级简单的厨师配方:
package 'ant'
package 'php5'
package 'git'
而且我ChefSpec试验default_spec.rb:
#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'
我是Ruby和RSpec的新手,我确定它是一个简单的配置问题。有什么想法吗?
谢谢!
两个注释掉'require'行注释掉
spec_helper.rb
距离产生spec_helper文件。在进行故障排除时,我想我会消除spec_helper文件,并将其两行放入我的RSpec文件中。我按照你的建议添加了'require'rspec'',但得到了相同的结果。 – je1910