Повар - поваренные книги для тестирования
В случае, если поваренная книга развернута и запущена на производственном сервере напрямую, высока вероятность того, что поваренная книга может перестать работать. Лучший способ предотвратить это - протестировать кулинарную книгу в среде установки.
Ниже приведены шаги для тестирования.
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 и тестовую кухню.