测试厨房不会参考当地的食谱

kef*_*tes 5 integration-testing cookbook chef-infra vagrant test-kitchen

我正在尝试测试一本取决于其他三本本地食谱的食谱.我的目录结构如下所示:

/cookbooks/
  cookbook_test/
    recipes 
    templates 
    metadata.rb
  cookbook_dep1/
  cookbook_dep2/
  cookbook_dep3/
Run Code Online (Sandbox Code Playgroud)

我正在尝试测试的cookbook中的元数据文件(cookbook_test)只是提到了另外三个相关的菜谱依赖:

depends cookbook_dep1
depends cookbook_dep2
depends cookbook_dep3
Run Code Online (Sandbox Code Playgroud)

但是在运行时,kitchen converge default-ubuntu-1204我得到以下内容:

[2014-03-03T18:05:13+00:00] ERROR: Cookbook cookbook_devp1 not found. If you're loading cookbook_devp1 from another cookbook, make sure you configure the dependency in your metadata       
[2014-03-03T18:05:13+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)       
Run Code Online (Sandbox Code Playgroud)

我在网上唯一能找到的就是我应该使用berkshelf.有没有其他方法只用测试厨房来引用本地食谱?

tma*_*lai 5

您必须将依赖项放在名为"cookbooks"(或"site-cookbooks")的目录中,该目录位于.kitchen.yml所在的目录中.或者使用Berkshelf或Librarian-Chef.

您也可以尝试将父目录符号链接到"./cookbooks",但不确定是否会导致某些命令的无限递归.