2016-09-22 115 views
0

我正在學習廚師和與測試廚房工作。我已經編寫了一個插件腳本,用於檢查我的測試實例中/ var/tmp /中的任何* .core文件是否在不到5分鐘前更改過。在我的食譜這個文件是$COOKBOOK_ROOT_DIR/files/default/plugins/check_core_files.sh廚師測試廚房:如何獲取插件腳本的路徑?

我注意到,廚房提供我的劇本到我的情況下,兩個位置(該位置也對我的CentOS 6和Ubuntu測試實例相同):

[[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 

我想與describe command功能$COOKBOOK_ROOT_DIR/test/integration/default/serverspec/default_spec.rb加入運行此以下的文件:

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 

有,我應該使用讓這個路徑的默認變量?還是我需要指定到達我的插件腳本運行的確切路徑?由於插件腳本存在於兩個位置,應該使用哪一個?或者沒有關係?

回答

1

這些都是臨時緩存文件。您需要使用cookbook_file資源將文件寫入到您控制的已知位置,然後讓測試檢查該文件。根據您的設想,廚師的內部結構測試不受支持:)

相關問題