যেকোনো কারণে একটি টেস্ট ব্যর্থ হতে পারে, এবং কখনও কখনও শুধু টেস্টটি পুনরায় চালালেই তা আবার পাস হয়ে যায় (যেমন অন্তর্নিহিত পরিকাঠামোর সমস্যার কারণে)। আপনি ট্রেডফেডকে স্বয়ংক্রিয়ভাবে পুনরায় চেষ্টা করার জন্য কনফিগার করতে পারেন।
অটো-রিট্রাইয়ের মূল উদ্দেশ্য হলো সমস্ত টেস্ট পুনরায় চালানো এড়ানো; এটি শুধুমাত্র ব্যর্থ টেস্টগুলোই পুনরায় চালায়, যার ফলে এক্সিকিউশন টাইমে ব্যাপক সাশ্রয় হয়।
ট্রেডফেড তার ইটারেশন ফিচারের মাধ্যমে ফ্ল্যাকিনেস শনাক্ত করার জন্য টেস্ট একাধিকবার চালানোর সুবিধাও দেয়। এক্ষেত্রে, সমস্ত টেস্ট পুনরায় চালানো হবে এবং কোনো একটি ইটারেশন ব্যর্থ হলে টেস্টটিও ব্যর্থ হবে।
স্বয়ংক্রিয় পুনঃপ্রচেষ্টা সক্ষম করুন
স্বয়ংক্রিয়ভাবে পুনরায় চেষ্টা করার বিষয়টি RetryDecision অবজেক্টের মাধ্যমে নিয়ন্ত্রণ করা হয়, যা এই বৈশিষ্ট্যটি সক্রিয় করার জন্য দুটি বিকল্প প্রদান করে: max-testcase-run-count এবং retry-strategy ।
max-testcase-run-count নির্ধারণ করে কতবার পুনরায় চেষ্টা করা হবে। এটি একটি ঊর্ধ্বসীমা নির্ধারণ করে, যাতে অনির্দিষ্টকাল ধরে পুনরায় চেষ্টা করা এড়ানো যায়। retry-strategy নির্ধারণ করে কীভাবে পুনরায় চেষ্টা করা হবে; আরও বিস্তারিত জানতে পরবর্তী বিভাগগুলো দেখুন।
স্বয়ংক্রিয় পুনঃপ্রচেষ্টা নিষ্ক্রিয় করুন
নিম্নলিখিত বিকল্পটি ব্যবহার করুন:
--retry-strategy NO_RETRY
পুনরায় চেষ্টা ব্যর্থতা
টেস্ট ব্যর্থ হলে পুনরায় চেষ্টা করার জন্য, নিম্নলিখিত বিকল্পগুলি ব্যবহার করুন:
--retry-strategy RETRY_ANY_FAILURE --max-testcase-run-count X
এটি ব্যর্থ হওয়ার পর পুনরায় চেষ্টা করতে থাকবে যতক্ষণ না তা সফল হয় অথবা সর্বোচ্চ সংখ্যক বার চেষ্টার সীমায় পৌঁছানো হয়, দুটির মধ্যে যেটি আগে ঘটে।
পুনরাবৃত্তি
একাধিকবার টেস্টগুলো পুনরায় চালানোর জন্য নিম্নলিখিত অপশনগুলো ব্যবহার করা যেতে পারে:
--retry-strategy ITERATIONS --max-testcase-run-count X
ফলাফলগুলো কেমন দেখাচ্ছে?
ফলাফল প্রদানকারীরা ডিফল্টরূপে সকল প্রচেষ্টার সম্মিলিত ফলাফল পাবেন।
উদাহরণস্বরূপ: RETRY_ANY_FAILURE এর ক্ষেত্রে একটি Fail এবং একটি Pass এর সম্মিলিত ফলাফল একটি Pass হবে, কারণ পুনরায় চেষ্টা করার মাধ্যমে ব্যর্থতাটি দূর করা সম্ভব হয়েছে।
রিপোর্টারদের পক্ষে অ-সমষ্টিগত ফলাফল গ্রহণ করা সম্ভব। এটি করার জন্য, তাদের ISupportGranularResults ইন্টারফেসটি এক্সটেন্ড করতে হবে, যা গ্র্যানুলার (অ-সমষ্টিগত) ফলাফলের জন্য সমর্থন ঘোষণা করে।
বাস্তবায়নের বিবরণ
টেস্ট কেস পর্যায়ে ব্যর্থ টেস্ট পুনরায় চালানোর জন্য অটো-রিট্রাই সক্ষম করতে, ITestFilterReceiver ইমপ্লিমেন্ট করুন।
যদি আপনি ITestFilterReceiver প্রয়োগ করতে না পারেন, তাহলে পুনরায় চালানোর পদ্ধতি ম্যানুয়ালি নিয়ন্ত্রণ করতে আপনি IAutoRetriableTest প্রয়োগ করতে পারেন। InstalledInstrumentationsTest হলো সেই ইন্টারফেসটির একটি উদাহরণমূলক প্রয়োগ।