2

私が書いたクックブックの 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"
  }
}
4

1 に答える 1