首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在环境/角色/节点重构过程中使用ChefSpec?

如何在环境/角色/节点重构过程中使用ChefSpec?
EN

Stack Overflow用户
提问于 2014-01-27 14:02:04
回答 2查看 1.2K关注 0票数 3

我有个厨师回购需要清理一下。配置数据分散在节点、环境和角色文件夹中的文件中。

我的想法是在数据重组过程中使用ChefSpec来测试反回归。由于ChefSpec似乎只直接支持角色,我如何在ChefSpec测试中使用现有的节点/环境?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-29 08:29:41

回答我自己,以防万一别人会觉得有用:

最后我举了一个这样的例子:

代码语言:javascript
复制
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速度的情况下测试所有必要的重组过程中的回归!

票数 2
EN

Stack Overflow用户

发布于 2014-01-27 17:39:34

大多数厨师工具都是专为一本烹饪书而设计的。您可以在“单块厨师回购”模式中使用ChefSpec。ChefSpec做支持模拟环境角色

当您编写ChefSpec测试(通常称为“示例”)时,它们针对的是单个菜谱,而不是角色或环境。如果您为所有的食谱编写了ChefSpec示例,那么您可以安全地执行此重构,在每次运行时运行测试。但是没有办法对你的主厨库进行测试。

资料来源:

  • 我维护它并编写了当前的版本。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21382833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档