हमने हाल ही में इन्फ्रास्ट्रक्चर कोड के परीक्षण के लिए हमारे स्वेत सेना चाकू से खट्टे आतंकवाद को खोला है ।
आज, आप शायद अपने सभी इन्फ्रास्ट्रक्चर कोड को मैन्युअल रूप से परिनियोजित, मान्य और कम करके परीक्षण कर रहे हैं। Terratest आपको इस प्रक्रिया को स्वचालित करने में मदद करता है:
- गो में परीक्षण लिखें।
- एक वास्तविक वातावरण (जैसे, AWS) में वास्तविक बुनियादी ढांचे (जैसे, सर्वर) को तैनात करने के लिए अपने असली IaC टूल (जैसे, टेराफॉर्म, पैकर, आदि) को निष्पादित करने के लिए टेरटेस्ट में हेल्पर्स का उपयोग करें।
- टेरेटेस्ट में हेल्पर्स का उपयोग यह प्रमाणित करने के लिए करें कि HTTP रिक्वेस्ट, एपीआई कॉल, एसएसएच कनेक्शन आदि बनाकर इन्फ्रास्ट्रक्चर सही तरीके से काम करता है।
- टेस्टेट के अंत में सब कुछ तैयार करने के लिए टेरेटेस्ट में हेल्पर्स का उपयोग करें।
यहाँ कुछ टेराफ़ॉर्म कोड के लिए एक उदाहरण परीक्षण है:
terraformOptions := &terraform.Options {
// The path to where your Terraform code is located
TerraformDir: "../examples/terraform-basic-example",
}
// This will run `terraform init` and `terraform apply` and fail the test if there are any errors
terraform.InitAndApply(t, terraformOptions)
// At the end of the test, run `terraform destroy` to clean up any resources that were created
defer terraform.Destroy(t, terraformOptions)
// Run `terraform output` to get the value of an output variable
instanceUrl := terraform.Output(t, terraformOptions, "instance_url")
// Verify that we get back a 200 OK with the expected text
// It can take a minute or so for the Instance to boot up, so retry a few times
expected := "Hello, World"
maxRetries := 15
timeBetweenRetries := 5 * time.Second
http_helper.HttpGetWithRetry(t, instanceUrl, 200, expected, maxRetries, timeBetweenRetries)
ये एकीकरण परीक्षण हैं, और जो आप परीक्षण कर रहे हैं, उसके आधार पर 5 - 50 मिनट लग सकते हैं। यह तेज़ नहीं है (हालांकि डॉकर और परीक्षण चरणों का उपयोग करके , आप कुछ चीजों को गति दे सकते हैं), और आपको परीक्षणों को विश्वसनीय बनाने के लिए काम करना होगा, लेकिन यह समय के लायक है।
डॉक्स और विभिन्न प्रकार के इन्फ्रास्ट्रक्चर कोड के बहुत सारे उदाहरणों और उनके लिए संबंधित परीक्षणों के लिए सबसे शानदार रेपो देखें ।