我正在爲我寫的食譜編寫ServerSpec測試過程。測試需要節點屬性來通過廚房斷言各種事物。廚師 - ServerSpec - 訪問節點屬性
幸運的是,解釋如何做到這一點這裏的指南: http://jakshi.com/blog/2014/05/12/accessing-chef-attributes-in-serverspec-tests/
我遇到的問題是,這不起作用:
attrs = attrs.deep_merge(node.override_attrs) unless node.override_attrs.empty?
但這個工程:
attrs = attrs.deep_merge(node.attributes.combined_override) unless node.attributes.combined_override.empty?
我的設置與博客中描述的完全相同。由於缺乏紅寶石,瀏覽code沒有幫助。廚師客戶端版本是11.14.6和測試廚房版本是1.3.1
有人可以幫忙嗎?有沒有其他人有這個問題?謝謝。
更新:這裏是我爲了模擬這個而創建的虛擬食譜的所有屬性。
cb-under-test/recipes/default.rb
<Nothing>
cb-under-test/test/fixtures/cookbooks/fake/attributes/default.rb
force_override['important_dir'] = 'test_recipe_force_override'
../env/dummy-env.json
{
"name": "dummy-env",
"description": "Dummy Env",
"cookbook_versions": {
},
"json_class": "Chef::Environment",
"chef_type": "environment",
"override_attributes": {
"important_dir": "env_override"
}
}
添加您的測試食譜的屬性文件,我們無法猜測您在哪個級別設置它們... – Tensibai
這些屬性來自幾個地方,包括環境。我的測試食譜中沒有任何屬性。 – dvlpr
無論如何,如果沒有提取物,我們無法猜測您的屬性定義在哪個級別(默認,正常,覆蓋,其他?) – Tensibai