অটোমেটিক টেস্ট আবার চালানো

যেকোনও কারণে কোনও টেস্ট ব্যর্থ হতে পারে এবং কখনও কখনও শুধু টেস্টটি আবার রান করলেই সেটি আবার পাস করে যায় (এর কারণ হল ফ্ল্যাকিনেস, যেমন, অন্তর্নিহিত ইনফ্রাস্ট্রাকচারে সমস্যা)। আপনি Tradefed কনফিগার করতে পারেন যাতে এটি অটোমেটিক আবার চেষ্টা করে।

অটোমেটিক আবার চেষ্টা করার মূল উদ্দেশ্য হল সব টেস্ট আবার রান করা এড়ানো; এটি শুধুমাত্র ব্যর্থ টেস্টগুলি আবার রান করে, যার ফলে এক্সিকিউশন টাইম অনেক সাশ্রয় হয়।

এছাড়াও, ইটারেশন ফিচারের মাধ্যমে ফ্লেকিনেস শনাক্ত করার জন্য Tradefed একাধিকবার টেস্ট রান করার সুবিধা প্রদান করে। এই ক্ষেত্রে, সব টেস্ট আবার রান করা হবে এবং কোনও একটি ইটেরেশন ব্যর্থ হলে টেস্টটি ব্যর্থ হবে।

অটোমেটিক আবার চেষ্টা করার সুবিধা চালু করুন

অটোমেটিক আবার চেষ্টা করার সুবিধাটি 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 হল সেই ইন্টারফেসের একটি উদাহরণ বাস্তবায়ন।