厨师:在没有食谱的情况下测试食谱

时间:2016-12-12 19:52:15

标签: chef cookbook

我写了一本食谱来下载tomcat(cookbook name =' my_tomcat')。 资源完成所有事情(资源名称' default.rb')并且没有配方。 其他烹饪书将调用此资源来下载tomcat。

为了测试这个tomcat食谱,我在test / cookbooks / test / recipes / default.rb中编写了一本测试食谱,并在我的食谱的berksfile中添加了依赖项。 当我进行厨房测试时,它会给我以下错误 -

================================================================================
Recipe Compile Error in /tmp/kitchen/cache/cookbooks/test/recipes/default.rb
================================================================================

   NoMethodError
   -------------
   No resource or method named `my_tomcat' for `Chef::Recipe "default"'

   Cookbook Trace:
   ---------------
     /tmp/kitchen/cache/cookbooks/test/recipes/default.rb:3:in `from_file'

   Relevant File Content:
   ----------------------
   /tmp/kitchen/cache/cookbooks/test/recipes/default.rb:

     1:  package 'java-1.7.0-openjdk'
     2:  
     3>> my_tomcat '/apps/tools/apache' do
     4:    version '7.0.32'
     5:  end
     6:  

请告诉我这里我做错了什么。 我是否需要在任何地方进行更多更改?

2 个答案:

答案 0 :(得分:1)

您的食谱test必须指定对my_tomcat食谱的依赖,以便提前加载其资源。

答案 1 :(得分:0)

No resource or method可能意味着其中的一件事。您需要做的第一件事就是确保在测试食谱Berksfile中声明对食谱的依赖性,同时将depends 'cookbook'添加到测试食谱中[&1;}。 s metadata.rb档案。

一旦完成,如果错误仍然存​​在,接下来要检查的是您在主菜单中正确命名自定义资源。

如果第一件事没有解决问题,请将测试食谱Berksfilemetadata.rb的内容添加到原始问题中,同时添加内容您在主菜单中的自定义资源文件。