একটি টেস্ট স্যুটে সাধারণত বেশ কয়েকটি টেস্ট মডিউল থাকে এবং এর টেস্ট কর্পাসের আকারও বেশ বড় হতে পারে। উদাহরণস্বরূপ, অ্যান্ড্রয়েড কম্প্যাটিবিলিটি টেস্ট স্যুট (CTS)- এ শত শত মডিউল এবং লক্ষ লক্ষ টেস্ট কেস রয়েছে।
দুর্বল আইসোলেশন বা ডিভাইসগুলো ত্রুটিপূর্ণ অবস্থায় চলে যাওয়ার কারণে বিপুল সংখ্যক টেস্ট ব্যর্থ হওয়ার সম্ভাবনা থাকে।
সুইট রিট্রাই ফিচারটি এই ধরনের পরিস্থিতি মোকাবেলার জন্য তৈরি করা হয়েছে: এটি আপনাকে সম্পূর্ণ সুইটের পরিবর্তে শুধুমাত্র ব্যর্থ টেস্টগুলো পুনরায় চেষ্টা করার সুযোগ দেয়, যাতে সিস্টেমের অস্থিতিশীলতা এবং দুর্বল আইসোলেশনের মতো সমস্যাগুলো বাদ দেওয়া যায়। যদি কোনো টেস্ট ধারাবাহিকভাবে ব্যর্থ হতে থাকে, তবে পুনরায় চেষ্টাও ব্যর্থ হয়; এবং এর মাধ্যমে আপনি একটি আসল সমস্যা থাকার ব্যাপারে অনেক জোরালো সংকেত পান।
স্যুট রিট্রাই বাস্তবায়ন করুন
ফলাফল পুনরায় চেষ্টা করার ক্ষেত্রে পূর্ববর্তী ফলাফলগুলো পড়া হয় এবং পূর্ববর্তী আহ্বানটি পুনরায় চালানো হয়।
পুনরায় চেষ্টা করার মূল ইন্টারফেসটি হলো ITestSuiteResultLoader , যা আপনাকে পূর্ববর্তী ফলাফল এবং পূর্ববর্তী কমান্ড লাইন লোড করতে দেয়।
এরপর RetryRescheduler এই তথ্য ব্যবহার করে পূর্ববর্তী কমান্ডটি পুনরায় তৈরি করে এবং কিছু ফিল্টার প্রয়োগ করে, যাতে শুধুমাত্র পূর্ববর্তী ব্যর্থ হওয়া বা সম্পাদিত না হওয়া টেস্টগুলো পুনরায় চালানো যায়।
উদাহরণ স্যুট পুনরায় চেষ্টা: CTS
CTS-এ রিট্রাই কনফিগারেশনটি হলো:
<configuration description="Runs a retry of a previous CTS session.">
<object type="previous_loader" class="com.android.compatibility.common.tradefed.result.suite.PreviousResultLoader" />
<test class="com.android.tradefed.testtype.suite.retry.RetryRescheduler" />
<logger class="com.android.tradefed.log.FileLogger">
<option name="log-level-display" value="WARN" />
</logger>
</configuration>
এটি এমন বেশিরভাগ স্যুটের ক্ষেত্রে প্রযোজ্য যা এটিকে প্রসারিত করে, উদাহরণস্বরূপ VTS ।
এটি দিয়ে আহ্বান করা হবে:
cts-tradefed run retry --retry <session>
CTS কনসোলে পূর্ববর্তী ফলাফলগুলো তালিকাভুক্ত করে সেশনটি খুঁজে পাওয়া যাবে:
cts-tf > l r
Session Pass Fail Modules Complete Result Directory Test Plan Device serial(s) Build ID Product
0 2092 30 148 of 999 2018.10.29_14.12.57 cts [serial] P Pixel
হুবহু মূল কমান্ডটি অতিরিক্ত ফিল্টারসহ পুনরায় লোড এবং চালানো হবে। এর মানে হলো, আপনার মূল কমান্ডে যদি কিছু অপশন অন্তর্ভুক্ত থাকে, তবে সেগুলোও এই পুনঃপ্রচেষ্টার অংশ হবে।
উদাহরণস্বরূপ:
cts-tradefed run cts-dev -m CtsGestureTestCases
উপরোক্তটির পুনঃপ্রচেষ্টা সর্বদা CtsGestureTestCases এর সাথে আবদ্ধ থাকে, কারণ আমরা এমন একটি কমান্ড পুনঃপ্রচেষ্টা করছি যেটিতে শুধুমাত্র এটিই জড়িত ছিল।
CTS-স্টাইল স্যুটের জন্য রিট্রাই কনফিগার করুন
পুনরায় চেষ্টা করার জন্য, পূর্ববর্তী ফলাফলগুলো প্রোটো ফরম্যাটে এক্সপোর্ট করতে হবে। নিম্নলিখিত বিষয়গুলো যোগ করতে হবে:
<result_reporter class="com.android.compatibility.common.tradefed.result.suite.CompatibilityProtoResultReporter" />
এটি মূল কমান্ডের XML কনফিগারেশনে যোগ করতে হবে, এবং এর ফলে রেজাল্ট ফোল্ডারে একটি test-record.pb ফাইল তৈরি হবে।
এরপর CTS রিট্রাই, রিট্রাই আহ্বানের প্রস্তুতি নেওয়ার জন্য test-record.pb এবং বিদ্যমান test_result.xml এর সমন্বয় থেকে ডেটা লোড করে।