对于nginx食谱,我有一个简单的测试:
require 'spec_helper'
describe 'my_cookbook::nginx' do
let(:chef_run) do
ChefSpec::Runner.new do |node|
node.set['nginx']['dir'] = '/etc/nginx'
end.converge(described_recipe)
end
it 'should create configuration directory' do
expect(chef_run).to create_directory("#{node['nginx']['dir']}")
end
end这是失败的:
Failures:
1) my_cookbook::nginx should create configuration directory
Failure/Error: expect(chef_run).to create_directory("#{node['nginx']['dir']}")
NameError:
undefined local variable or method `node' for #<RSpec::Core::ExampleGroup::Nested_1:0x00000007993570>我试图按照描述的在医生里设置节点属性,是否有明显的遗漏?
发布于 2014-02-13 19:13:54
您可以设置节点属性。如果您查看堆栈跟踪,它是在抱怨这一行:
expect(chef_run).to create_directory("#{node['nginx']['dir']}")具体来说,#{node['nginx']['dir']}.您应该在这里使用一个静态值,否则测试就没有意义了。改为:
expect(chef_run).to create_directory('/etc/nginx')https://stackoverflow.com/questions/21762765
复制相似问题