Повар - поваренные книги для тестирования

В случае, если поваренная книга развернута и запущена на производственном сервере напрямую, высока вероятность того, что поваренная книга может перестать работать. Лучший способ предотвратить это - протестировать кулинарную книгу в среде установки.

Ниже приведены шаги для тестирования.

Step 1 - Установите книгу рецептов с помощью следующей команды.

vipin@laptop:~/chef-repo $ knife cookbook site install <cookbook name>

Step 2 - Запустите команды проверки поваренной книги ножа в рабочей кулинарной книге.

vipin@laptop:~/chef-repo $ knife cookbook test VTest  
checking ntp 
Running syntax check on ntp 
Validating ruby files 
Validating templates

Step 3 - Сломайте что-нибудь в кулинарной книге и попробуйте еще раз.

vipin@laptop:~/chef-repo $ subl cookbooks/VTest/recipes/default.rb 
... 
[ node['ntp']['varlibdir'] 
node['ntp']['statsdir'] ].each do |ntpdir| 
   directory ntpdir do 
      owner node['ntp']['var_owner'] 
      group node['ntp']['var_group'] 
      mode 0755 
   end 
end

Step 4 - Снова запустите команду проверки ножа.

vipin@laptop:~/chef-repo $ knife cookbook test ntp 
checking ntp 
Running syntax check on ntp 
Validating ruby files 
FATAL: Cookbook file recipes/default.rb has a ruby syntax error: 
FATAL: cookbooks/ntp/recipes/default.rb:25: syntax error, 
unexpected tIDENTIFIER, expecting ']' 
FATAL: node['ntp']['statsdir'] ].each do |ntpdir| 
FATAL: ^ 
FATAL: cookbooks/ntp/recipes/default.rb:25: syntax error, 
unexpected ']', expecting $end 
FATAL: node['ntp']['statsdir'] ].each do |ntpdir| 
FATAL:

Метод работы

Тест кулинарной книги Knife выполняет проверку синтаксиса Ruby для всех файлов Ruby в кулинарной книге, а также для всех шаблонов ERB. Он просматривает файлы Ruby и запускает Ruby–cпротив каждого из них. Рубин–c проверяет синтаксис скрипта и завершает работу, не запуская его.

После прохождения всех файлов Ruby, тест поваренной книги ножа проходит через все шаблоны и каналы ERB, дублирующая версия, созданная –x через Руби –c.

Ограничения

Knife cookbook test выполняет только простую проверку синтаксиса файлов Ruby и шаблонов ERB. Мы можем продолжить полностью тестирование, используя ChefSpec и тестовую кухню.