Koch - Kochbücher testen

Wenn das Kochbuch direkt bereitgestellt und auf dem Produktionsserver ausgeführt wird, besteht eine hohe Wahrscheinlichkeit, dass das Kochbuch in der Produktion ausfällt. Der beste Weg, dies zu verhindern, besteht darin, das Kochbuch in der Setup-Umgebung zu testen.

Im Folgenden finden Sie die Schritte zum Testen.

Step 1 - Installieren Sie das Kochbuch mit dem folgenden Befehl.

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

Step 2 - Führen Sie die Testbefehle für das Messerkochbuch im Arbeitskochbuch aus.

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

Step 3 - Brechen Sie etwas im Kochbuch und testen Sie es erneut.

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 - Führen Sie den Messertestbefehl erneut aus.

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:

Arbeitsmethode

Der Messer-Kochbuchtest führt eine Ruby-Syntaxprüfung für alle Ruby-Dateien im Kochbuch sowie für alle ERB-Vorlagen durch. Es durchläuft Ruby-Dateien und führt Ruby aus–cgegen jeden von ihnen. Rubin–c Überprüft die Syntax des Skripts und wird beendet, ohne es auszuführen.

Nachdem Sie alle Ruby-Dateien durchgesehen haben, durchläuft der Messerkochbuchtest alle ERB-Vorlagen und -Pipes, die redundante Version, die von erstellt wurde –x durch Ruby –c.

Einschränkungen

Der Messerkochbuchtest führt nur eine einfache Syntaxprüfung der Ruby-Dateien und ERB-Vorlagen durch. Mit ChefSpec und Testküche können wir eine vollständige Testfahrt durchführen.