2016-11-02 8 views
0

これは私の現在の状況です。私は内側のgitリポジトリに1つの料理本を持っています。その料理で、私はいくつかのポリシーファイルを保持し、それらをテストする必要があり、そのために私は料理の内部policyfilesというディレクトリを作成し、され、このような何か:シェフのテストキッチンとポリシーファイル

MyCookbook 
|--attributes 
|--recipes 
|--templates 
|--spec 
|--policyfiles 
| |- a.rb 
| |- b.rb 
|--other files. 

私の問題は、私はそれらのa.rbをテストしなければならないということですとb.rbのポリシーファイルをキッチンで使用していたので、chef_zeroを使用してこれらのポリシーファイルを読んでみました。policyfile_zeroキッチンプロビジョナ...この場合、ポリシーファイルのロックファイルを読み込めます(例:a。 lock.json)がcookbookのルートディレクトリに置かれ、に名前が変更された場合にのみ有効です。Policyfile.lock.json

これは非常に厄介で実用的ではありません。キッチンでローカルにポリシーファイルをテストする方法についての洞察力を提供してくれる人はいらっしゃいますか?私はこれが唯一の方法だとは信じられません。

答えて

2

私の独自の質問に答えると、それ以上のランダムな試行錯誤をしたことが判明しました。私がchef_zeroを使ってポリシーファイルの場所を伝えているように問題があるようです。

動作しません
suites: 
    - name: MySuite 
    provisioner: 
     policyfile: policyfiles/a.rb 

は以前policyfile_zeroのプロビジョニングと、シェフのキッチンでスイートの構造は次のようである可能性があります。しかし今、このための構文はありません:

suites: 
    - name: MySuite 
    provisioner: 
     policyfile_path: policyfiles/a.rb 

これはのみ動作します何が、自動シェフがpolicyfileをパスに新鮮なロックファイルを作成し、にpolicyfileをインストールし、プロビジョニングマシンに名前を変更せずに、それを適用します。

+0

申し訳ありませんが、最近のバージョンのTest Kitchenでは、後方互換性のために古い名前が再追加されています。 – coderanger

関連する問題