Şef - Yemek Kitaplarını Test Etmek

Yemek kitabının doğrudan dağıtılması ve üretim sunucusunda çalıştırılması durumunda, yemek kitabının üretimde parçalanma ihtimali yüksektir. Bunun olmasını önlemenin en iyi yolu, yemek kitabını kurulum ortamında test etmektir.

Aşağıda test etme adımları verilmiştir.

Step 1 - Aşağıdaki komutu kullanarak yemek kitabını kurun.

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

Step 2 - Çalışan yemek kitabında bıçak yemek kitabı test komutlarını çalıştırın.

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

Step 3 - Yemek kitabındaki bir şeyi kırın ve tekrar test edin.

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 - Bıçak testi komutunu tekrar çalıştırın.

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:

Çalışma yöntemi

Knife yemek kitabı testi, yemek kitabındaki tüm Ruby dosyalarının yanı sıra tüm ERB şablonlarında bir Ruby sözdizimi denetimi gerçekleştirir. Ruby dosyalarında döngü oluşturur ve Ruby'yi çalıştırır–cher birine karşı. Yakut–c betiğin sözdizimini kontrol eder ve çalıştırmadan çıkar.

Tüm Ruby dosyalarının üzerinden geçtikten sonra, bıçak yemek kitabı testi tüm ERB şablonlarından ve borularından geçer. –x Ruby aracılığıyla –c.

Sınırlamalar

Bıçak yemek kitabı testi, Ruby dosyaları ve ERB şablonlarında yalnızca basit bir sözdizimi kontrolü yapar. ChefSpec ve test mutfağı kullanarak tamamen test sürüşüne devam edebiliriz.