厨师测试厨房:如何获取插件脚本的路径?

时间:2016-09-22 20:19:50

标签: chef test-kitchen

我正在学习厨师并与测试厨房合作。我编写了一个插件脚本,用于检查我的测试实例中/ 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

我应该使用默认变量来获取此路径吗?或者我是否需要指定要运行的插件脚本的确切路径?由于插件脚本存在于两个位置,应该使用哪一个?或者没关系?

1 个答案:

答案 0 :(得分:1)

这些都是临时缓存文件。您需要使用cookbook_file资源将文件写入您控制下的已知位置,然后进行测试检查。正如您可能想象的那样,对Chef内部结构的测试不受支持:)