我写了一本食谱来下载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:
请告诉我这里我做错了什么。 我是否需要在任何地方进行更多更改?
答案 0 :(得分:1)
您的食谱test
必须指定对my_tomcat
食谱的依赖,以便提前加载其资源。
答案 1 :(得分:0)
No resource or method
可能意味着其中的一件事。您需要做的第一件事就是确保在测试食谱Berksfile
中声明对食谱的依赖性,同时将depends 'cookbook'
添加到测试食谱中[&1;}。 s metadata.rb
档案。
一旦完成,如果错误仍然存在,接下来要检查的是您在主菜单中正确命名自定义资源。
如果第一件事没有解决问题,请将测试食谱Berksfile
和metadata.rb
的内容添加到原始问题中,同时添加内容您在主菜单中的自定义资源文件。