我正在学习厨师并与测试厨房合作。我编写了一个插件脚本,用于检查我的测试实例中/ var / tmp /中的任何* .core文件是否在不到5分钟前被更改。在我的食谱中,这个文件是$COOKBOOK_ROOT_DIR/files/default/plugins/check_core_files.sh
:
我注意到厨房将我的脚本分配到我的实例上的两个位置(我的centos 6和ubuntu测试实例上的位置也相同):
[root@default-centos-71 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
我应该使用默认变量来获取此路径吗?或者我是否需要指定要运行的插件脚本的确切路径?由于插件脚本存在于两个位置,应该使用哪一个?或者没关系?
答案 0 :(得分:1)
这些都是临时缓存文件。您需要使用cookbook_file
资源将文件写入您控制下的已知位置,然后进行测试检查。正如您可能想象的那样,对Chef内部结构的测试不受支持:)