Chef 测试厨房:如何获取插件脚本的路径?
Chef test kitchen: How to get the path of plugin scripts?
我正在学习厨师并在测试厨房工作。我编写了一个插件脚本来检查我的测试实例中 /var/tmp/ 中的任何 *.core 文件是否在不到 5 分钟前被更改。在我的食谱中,这个文件是 $COOKBOOK_ROOT_DIR/files/default/plugins/check_core_files.sh
:
我注意到 kitchen 将我的脚本传送到我的实例上的两个位置(该位置在我的 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
我想 运行 使用 $COOKBOOK_ROOT_DIR/test/integration/default/serverspec/default_spec.rb
中的 describe 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
我应该使用默认变量来获取此路径吗?或者我是否需要指定确切的路径以获取我的插件脚本到 运行?由于插件脚本存在于两个位置,应该使用哪一个?还是无所谓?
这些都是临时缓存文件。您需要使用 cookbook_file
资源将文件写出到您控制下的已知位置,然后进行测试检查。正如您想象的那样,不支持针对 Chef 的内部结构进行测试 :)
我正在学习厨师并在测试厨房工作。我编写了一个插件脚本来检查我的测试实例中 /var/tmp/ 中的任何 *.core 文件是否在不到 5 分钟前被更改。在我的食谱中,这个文件是 $COOKBOOK_ROOT_DIR/files/default/plugins/check_core_files.sh
:
我注意到 kitchen 将我的脚本传送到我的实例上的两个位置(该位置在我的 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
我想 运行 使用 $COOKBOOK_ROOT_DIR/test/integration/default/serverspec/default_spec.rb
中的 describe 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
我应该使用默认变量来获取此路径吗?或者我是否需要指定确切的路径以获取我的插件脚本到 运行?由于插件脚本存在于两个位置,应该使用哪一个?还是无所谓?
这些都是临时缓存文件。您需要使用 cookbook_file
资源将文件写出到您控制下的已知位置,然后进行测试检查。正如您想象的那样,不支持针对 Chef 的内部结构进行测试 :)