2016-12-12 140 views
1

我已经写了一本食谱下载Tomcat的(菜谱名称=“my_tomcat”)。 资源完成所有工作(资源名称为'default.rb'),并且没有配方。 其他食谱会调用这个资源来下载tomcat。厨师:测试食谱没有配方

为了测试这个tomcat的食谱,我已经写在测试/食谱/测试/食谱/ 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: 

请让我知道我在做什么错在这里。 我需要在任何地方做一些更改吗?

回答

1

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

+0

所以我在测试食谱中添加了这个metadata.rb- depends'my_tomcat' 我是否还需要添加其他地方? – user6378152

+0

我不知道,你在别处放什么。你在'Berksfile'中有一个'cookbook'行,指向你的_test_食谱,这已经是一个不错的开始。请提供更多的代码部分。 – StephenKing

+0

我berksfile线 - 源“somesource” 元 食谱“测试”,路径为:“测试/食谱/测试” – user6378152

0

No resource or method可能意味着几件事情之一。你需要做的第一件事情是确保,与宣布在你的食谱依赖沿测试食谱的Berksfile,你还可以添加depends 'cookbook'到测试食谱的metadata.rb文件。

一旦这样做了,如果错误仍然存​​在,检查接下来的事情是,你在主菜谱正确命名您的自定义资源。

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