私が書いたクックブックの ServerSpec テストを作成中です。テストには、kitchen を介してさまざまなことをアサートするためのノード属性が必要です。
幸いなことに、これを達成する方法を説明するガイドがここにあります: 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?
私のセットアップは、ブログで説明されているものとまったく同じです。ruby-fu がないため、ブラウジングコードは役に立ちませんでした。シェフ クライアントのバージョンは 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"
}
}