1

単純な属性ファイルがあります: attributes/default.rb.

default['simpleattr'] = 'file value'

そして内部kitchen.ymlでは、私はそうします

suites:
  - name: default
    run_list: 
      - recipe[simple::default]
    attributes:
     simpleattr: 'value from kitchen'
     simple:
       simpleattr: 'value from kitchen'

レシピ内では、次のことを行います。

log  "default['simpleattr']: "+node.default['simpleattr']

そして、私は常に出力として'file value'ではなく取得'value from kitchen'します。

テストで値をオーバーライドしたい。

4

1 に答える 1

4

を介してノード値にアクセスしないでください。代わりにnode.default[]使用してください。node[]Chef の属性階層は、優先レベルに従って値を自動的に計算します。

あなたの問題を再現し、Github にアップロードしました解決策は、私のコメントで以前に説明したとおりです。使用しないでください

node.default['simpleattr']

代わりに

node['simpleattr']

その後、すべてが期待どおりになり、出力は

Recipe: simple::default
  * log[default['simpleattr']: value from kitchen] action write
于 2016-08-09T06:44:16.407 に答える