2016-09-22 7 views
0

私はシェフを勉強しており、テスト台所で働いています。テストインスタンスの/ var/tmp /にある* .coreファイルが5分前に変更されたかどうかをチェックするプラグインスクリプトを作成しました。私の料理では、このファイルは$COOKBOOK_ROOT_DIR/files/default/plugins/check_core_files.shです:シェフのテストキッチン:どのようにプラグインスクリプトのパスを取得するには?

[[email protected] vagrant]# find/-name check_core_files.sh 
/tmp/kitchen/cookbooks/$COOKBOOKNAME/files/default/plugins/check_core_files.sh 
/tmp/kitchen/cache/cookbooks/$COOKBOOKNAME/files/default/plugins/check_core_files.sh 

私はキッチンで(場所がまた私のCentOS 6とUbuntuのテストインスタンスで同じである)私のインスタンス上の2つの場所に私のスクリプトを提供することに気づきました私は、ファイルに以下を追加することにより、$COOKBOOK_ROOT_DIR/test/integration/default/serverspec/default_spec.rbdescribe command機能でこれを実行したいと思います:

describe command("#{PATH_TO_SCRIPT}/check_core_files.sh") do 
    its(:exit_status) { should eq 0 } # checks if there are *.core files in /var/tmp/ less than 5 min old 
end 

は、私はこのパスを取得するために使用するデフォルトの変数がありますか?または、プラグインスクリプトを実行するための正確なパスを指定する必要がありますか?プラグインスクリプトは2つの場所に存在するため、どちらを使用する必要がありますか?それとも問題じゃない?

答えて

1

これらは両方とも一時キャッシュファイルです。 cookbook_fileリソースを使用して、制御下の既知の場所にファイルを書き出し、テストでそのファイルをチェックする必要があります。シェフの内部構造に対するテストは、あなたが想像しているように、サポートされていません:)

関連する問題