2016-12-12 142 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添加到原始問題中,以及主食譜中的自定義資源文件的內容。