আমরা সম্প্রতি অবকাঠামো কোড পরীক্ষার জন্য আমাদের সুইস আর্মি ছুরি সর্সযুক্ত টেরেটেস্ট খুলি ।
আজ, আপনি সম্ভবত আপনার সমস্ত পরিকাঠামো কোডটি ম্যানুয়ালি মোতায়েন, বৈধকরণ এবং অবর্ণন দ্বারা পরীক্ষা করছেন। টেরেটেস্ট আপনাকে এই প্রক্রিয়াটি স্বয়ংক্রিয় করতে সহায়তা করে:
- গো পরীক্ষায় লিখুন।
- প্রকৃত পরিবেশে প্রকৃত অবকাঠামো (যেমন, সার্ভার) স্থাপন করতে আপনার প্রকৃত আইএসি সরঞ্জামগুলি (যেমন, টেরফর্ম, প্যাকার ইত্যাদি) কার্যকর করতে টেরেটেস্টে সহায়তাকারীদের ব্যবহার করুন (যেমন, এডাব্লুএস)।
- টেরেটেস্টের সাহায্যকারীদের এইচটিটিপি অনুরোধ, এপিআই কল, এসএসএইচ সংযোগ ইত্যাদির মাধ্যমে সেই পরিবেশে সঠিকভাবে কাজ করে তা যাচাই করতে ব্যবহার করুন Use
- পরীক্ষার শেষে সমস্ত কিছু প্রকাশ করার জন্য টেরেস্টে সহায়কদের ব্যবহার করুন।
এখানে কিছু টেরারফর্ম কোডের জন্য উদাহরণ পরীক্ষা রয়েছে:
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 মিনিট সময় নিতে পারে। এটি দ্রুত নয় (যদিও ডকার এবং পরীক্ষার ধাপগুলি ব্যবহার করে আপনি কিছু জিনিস বাড়িয়ে দিতে পারেন), এবং আপনাকে পরীক্ষাগুলি নির্ভরযোগ্য করে তোলার জন্য কাজ করতে হবে, তবে এটি সময়ের পক্ষে উপযুক্ত।
পরীক্ষা করে দেখুন Terratest রেপো দস্তাবেজ এবং পরিকাঠামো কোডের বিভিন্ন ধরনের উদাহরণ প্রচুর এবং তাদের জন্য সংশ্লিষ্ট পরীক্ষার জন্য।