Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Chef infra 厨师:测试一本没有菜谱的食谱_Chef Infra_Cookbook - Fatal编程技术网

Chef infra 厨师:测试一本没有菜谱的食谱

Chef infra 厨师:测试一本没有菜谱的食谱,chef-infra,cookbook,Chef Infra,Cookbook,我写了一本食谱来下载tomcat(食谱名称='my_tomcat')。 资源无所不能(资源名为'default.rb'),并且没有配方。 其他食谱将调用此资源下载tomcat 为了测试这个tomcat cookbook,我在test/cookbooks/test/recipes/default.rb中编写了一个测试cookbook,并在我的cookbook的berksfile中添加了依赖项。 当我运行kitchen测试时,它给出了以下错误- ===========================

我写了一本食谱来下载tomcat(食谱名称='my_tomcat')。 资源无所不能(资源名为'default.rb'),并且没有配方。 其他食谱将调用此资源下载tomcat

为了测试这个tomcat cookbook,我在test/cookbooks/test/recipes/default.rb中编写了一个测试cookbook,并在我的cookbook的berksfile中添加了依赖项。 当我运行kitchen测试时,它给出了以下错误-

================================================================================
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:  
请让我知道我做错了什么。
我需要在任何地方做更多的更改吗?

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

没有任何资源或方法可以意味着其中一件事。您需要做的第一件事是确保,除了在测试cookbook的
Berksfile
中声明对您的cookbook的依赖关系外,还将
依赖“cookbook”
添加到测试cookbook的
metadata.rb
文件中

完成后,如果错误仍然存在,下一步要检查的是您是否在主食谱中正确命名了自定义资源


如果做第一件事不能解决问题,请将测试手册的
Berksfile
metadata.rb
的内容添加到原始问题中,与主烹饪书中自定义资源文件的内容一起。

所以我在我的测试烹饪书metadata.rb中添加了这个-取决于“my_tomcat”,我还需要添加其他地方吗?我不知道,您在其他地方添加了什么。在
Berksfile
中有一行
cookbook
指向您的测试cookbook,这已经是一个很好的开始。请提供您的代码的更多部分。My berksfile行-源“somesource”元数据食谱“test”,路径:“test/cookbooks/test”以及您的测试食谱的元数据?你作为“新手”已经能够编辑你的帖子了吗?如果是,请这样做。