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.