我有个厨师回购需要清理一下。配置数据分散在节点、环境和角色文件夹中的文件中。
我的想法是在数据重组过程中使用ChefSpec来测试反回归。由于ChefSpec似乎只直接支持角色,我如何在ChefSpec测试中使用现有的节点/环境?
发布于 2014-01-29 08:29:41
回答我自己,以防万一别人会觉得有用:
最后我举了一个这样的例子:
it 'renders config file with proper data on node ABC in environment XYZ' do
runner = ChefSpec::Runner.new
node_attr = JSON.parse(File.open('nodes/ABC.json'))
runner.node.consume_attributes(node_attr)
env_attr = JSON.parse(File.open('environments/XYZ.json'))
env = Chef::Environment.json_create(env_attr)
runner.node.stub(:chef_environment).and_return('XYZ')
Chef::Environment.stub(:load).and_return(env)
runner.converge('cookbook::recipe')
expect(runner).to render_file('/etc/cookbook.cfg').with_content('some data from ABC.json')
end这适用于“单块厨师回购”模式,这是我在我们厨师采用的早期阶段使用的--事实上,我们使用的是厨师--单独使用,但是在一个文件夹结构上,它试图与厨师回购兼容。
而且,我不想在没有ChefSpec速度的情况下测试所有必要的重组过程中的回归!
https://stackoverflow.com/questions/21382833
复制相似问题