2016-12-12 11 views
1

Я написал кулинарию, чтобы скачать tomcat (cookbook name = 'my_tomcat'). Ресурс делает все (имя ресурса 'default.rb'), и нет рецепта к нему. Другие кулинарные книги будут называть этот ресурс для загрузки tomcat.Шеф-повар: тестирование поваренной книги без рецепта

Чтобы проверить эту кулинарную книгу tomcat, я написал тестовую кулинарию в тестовых/кулинарных книгах/test/recipes/default.rb и добавил зависимость в berksfile моей кулинарной книги. Когда я запускаю тест кухни, это дает мне ниже error-

================================================================================ 
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

Я не знаю, что вы положили в другое место. У вас есть 'cookbook' строка в« Berksfile », указывающая на вашу кулинарную книгу _test_, это уже хорошее начало. Пожалуйста, предоставьте больше частей вашего кода. – StephenKing

+0

Мой berksfile лайн- источник «somesource» метаданных поваренной «тест», путь: «тест/поваренные книги/тест» – user6378152

0

No resource or method может означать одну из двух вещей. Самое первое, что вам нужно сделать, это убедиться, что наряду с объявлением зависимости от вашей кулинарной книги в тестовой кулинарной книге Berksfile вы также добавите depends 'cookbook' в файл metadata.rb тестовой кулинарии.

Как только это будет сделано, если ошибка сохранится, необходимо проверить следующее: правильно ли вы назовите свой собственный ресурс в основной кулинарной книге.

Если первое не устраняет проблему, добавьте содержимое вашей тестовой кулинарной книги Berksfile и metadata.rb к исходному вопросу вместе с содержимым вашего файла пользовательских ресурсов в основной кулинарной книге.