我正在学习如何为我的厨师食谱编写集成测试。是否可以在我的测试中引用attributes文件夹中的变量?
这是我的测试,以确保httpd和php安装正确。然而,我有额外的软件包,我想检查。
测试/吸烟/默认/安装.
%w(httpd php).each do |rpm_package|
describe package(rpm_package) do
it { should be_installed }
end
end属性/default.rb
default['ic_apachephp']['php_packages'] = [
'php-mysqlnd',
'php-mbstring',
'php-gd',
'php-xml',
'php'
]发布于 2017-08-04 16:08:02
是的,这是可能的,但不是“直接”的。马特·沃克在这个博客条目中描述了这一点。
必要的步骤是:
export-node,在test/fixtures/cookbooks/下面),其中包括一个包含以下内容的菜谱(将节点属性转储到指定的JSON文件中):
ruby_block“保存节点属性”做块做IO.write(“/tmp/厨房_厨师_node.json”,node.to_json)结束.kitchen.yml中的运行列表中node对象
node =json(‘/tmp/厨房_厨师_node.json’).params请注意,您必须手动从正确的属性优先级级别(自动/默认/正常/覆盖)中选择,因为这些属性没有合并。
您也可以在这本食谱中找到我的一个例子:TYPO3 3-食谱/T3-pdns。
编辑:我忘了告诉伯克希尔关于那本烹饪书的步骤。添加到您的Berksfile
group :integration do
cookbook 'export-node', path: 'test/fixtures/cookbooks/export-node'
endhttps://stackoverflow.com/questions/45509641
复制相似问题