Tradefed-এ একটি স্যুট এমন একটি সেটআপকে বোঝায় যেখানে একটি সাধারণ পরীক্ষার রানারের অধীনে বেশ কয়েকটি পরীক্ষা চলছে যা সামগ্রিকভাবে সম্পাদন করে।
Tradefed-এ, স্যুটগুলি ITestSuite
ক্লাসের মাধ্যমে চালিত হয়, যা পরীক্ষাগুলিকে কীভাবে চালানো হয় তা থেকে স্বাধীনভাবে যুক্ত এবং সরানো যায়।
সংজ্ঞা
- স্যুট: পরীক্ষার মডিউলগুলির সেট একটি একক আহ্বানের অধীনে তাদের ফলাফল রিপোর্ট করার জন্য একটি অনুরূপ শীর্ষ-স্তরের সেটআপের অধীনে চালানোর জন্য কনফিগার করা হয়েছে।
- টপ-লেভেল সেটআপ: যেকোনো টেস্ট মডিউল চালানোর আগে ডিভাইসে সেটআপ প্রয়োগ করা হয়।
- প্রধান কনফিগারেশন: স্যুট-লেভেল ট্রেডফেড এক্সএমএল কনফিগারেশন যা বর্ণনা করে যে কোন মডিউলগুলি চালানো উচিত এবং কোন শীর্ষ-স্তরের সেটআপ ব্যবহার করা উচিত।
- মডিউল-স্তরের সেটআপ: মডিউল চালানোর ঠিক আগে ডিভাইসগুলিতে সেটআপ প্রয়োগ করা হয়। এগুলি মডিউল-নির্দিষ্ট সেটআপ হিসাবেও পরিচিত।
- মডিউল কনফিগারেশন:
AndroidTest.xml
Tradefed XML কনফিগারেশনকে বোঝায় যা মডিউলগুলি বর্ণনা করে এবং কোন মডিউল-স্তরের সেটআপ করা উচিত। - মডিউল: একটি সেটআপ ধাপ ( মডিউল-স্তরের সেটআপ ), একটি পরীক্ষা সম্পাদনের ধাপ এবং একটি টিয়ার ডাউন ধাপ নিয়ে গঠিত টেস্ট ইউনিট।
- ইন্ট্রা-মডিউল পুনরায় চেষ্টা: মডিউলের ভিতরে জোতা দ্বারা স্বয়ংক্রিয় পুনরায় চেষ্টা করা হয়।
- স্যুট পুনরায় চেষ্টা করুন: স্যুটের পূর্বে ব্যর্থ পরীক্ষাগুলির সম্পূর্ণ পুনঃরান।
ITestSuite গঠন
Tradefed-এ ITestSuite
বলতে সাধারণ বেস ক্লাসকে বোঝায় যা স্যুট এক্সিকিউশন চালায়। এটি সমস্ত প্রধান পরীক্ষা স্যুট দ্বারা ভাগ করা হয়েছে, বিশেষত Android সামঞ্জস্য পরীক্ষা স্যুট (CTS) এবং Android ভেন্ডর টেস্ট স্যুট (VTS) , এবং সমস্ত স্যুট জুড়ে একটি সামঞ্জস্যপূর্ণ সম্পাদনের অভিজ্ঞতা নিশ্চিত করে৷
আমরা কখনও কখনও ITestSuite কে স্যুট রানার হিসাবে উল্লেখ করি।
স্যুট রানার কার্যকর করার সময় এই পদক্ষেপগুলি অনুসরণ করে:
- মডিউলের কনফিগারেশন লোড করুন এবং কোন সেটটি চালানো উচিত তা নির্ধারণ করুন।
প্রতিটি মডিউল চালান:
- মডিউল-স্তরের সেটআপ চালান।
- মডিউল পরীক্ষা চালান।
- মডিউল-স্তরের টিয়ার ডাউন চালান।
ফলাফল রিপোর্ট.
শীর্ষ-স্তরের সেটআপ
একটি ট্রেডফেড দৃষ্টিকোণ থেকে, ITestSuite
হল আরেকটি পরীক্ষা। এটি একটি জটিল তবে এটি এখনও অন্য যেকোন IRemoteTest
মতোই একটি পরীক্ষা। সুতরাং ট্রেডফেড কনফিগারেশনে স্যুট রানার নির্দিষ্ট করার সময়, ট্রেডফেড কনফিগারেশনের স্বাভাবিক প্যাটার্ন অনুসরণ করে: চলমান build_provider
, target_preparer
, test (এই ক্ষেত্রে আমাদের স্যুট), এবং target_cleaner
।
ITestSuite
ধারণকারী Tradefed কনফিগারেশনের এই ক্রমটি হল শীর্ষ-স্তরের সেটআপ।
উদাহরণ:
<configuration description="Common config for Compatibility suites">
<build_provider class="com.android.compatibility.common.tradefed.build.CompatibilityBuildProvider" />
<!-- Setup applied before the suite: so everything running in the suite will
have this setup beforehand -->
<target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
<option name="run-command" value="settings put global package_verifier_enable 0" />
<option name="teardown-command" value="settings put global package_verifier_enable 1"/>
</target_preparer>
<!-- Our ITestSuite implementation -->
<test class="com.android.compatibility.common.tradefed.testtype.suite.CompatibilityTestSuite" />
<result_reporter class="com.android.compatibility.common.tradefed.result.ConsoleReporter" />
</configuration>
মডিউল মেটাডেটা
আমরা AndroidTest.xml
পরীক্ষা মডিউলে নির্দিষ্ট করা মডিউল মেটাডেটা অতিরিক্ত তথ্য বলি। এই মেটাডেটা আপনাকে মডিউল সম্পর্কে অতিরিক্ত তথ্য নির্দিষ্ট করতে দেয় এবং মেটাডেটা ব্যবহার করে মডিউল ফিল্টার করা যায়।
উদাহরণ মেটাডেটা:
<option name="config-descriptor:metadata" key="component" value="framework" />
<option name="config-descriptor:metadata" key="parameter" value="instant_app" />
মেটাডেটাতে ফিল্টারের উদাহরণ:
--module-metadata-include-filter component=framework
উপরের সমস্ত মডিউলগুলিকে একটি ফ্রেমওয়ার্ক সহ উপাদান মেটাডেটা হিসাবে চালাবে।
সম্পূর্ণ AndroidTest.xml
উদাহরণ:
<configuration description="Config for CTS Gesture test cases">
<option name="test-suite-tag" value="cts" />
<!-- Metadata -->
<option name="config-descriptor:metadata" key="component" value="framework" />
<option name="config-descriptor:metadata" key="parameter" value="instant_app" />
<!-- End: metadata -->
<target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
<option name="cleanup-apks" value="true" />
<option name="test-file-name" value="CtsGestureTestCases.apk" />
</target_preparer>
<test class="com.android.tradefed.testtype.AndroidJUnitTest" >
<option name="package" value="android.gesture.cts" />
<option name="runtime-hint" value="10m50s" />
</test>
</configuration>
প্যারামিটারাইজড মডিউল
একটি বিশেষ মেটাডেটা টাইপ হল parameter
।
<option name="config-descriptor:metadata" key="parameter" value="instant_app" />
এই মেটাডেটা নির্দিষ্ট করে যে মডিউলটিকে একটি ভিন্ন মোডে কার্যকর করা দরকার, উদাহরণস্বরূপ একটি তাত্ক্ষণিক অ্যাপ হিসাবে, একটি আদর্শ অ্যাপ মোডের পরিবর্তে৷
সমস্ত সম্ভাব্য মোড বা প্যারামিটারগুলি ModuleParameters
দ্বারা বর্ণনা করা হয়েছে এবং ModuleParametersHelper
এ একটি সংশ্লিষ্ট হ্যান্ডলার রয়েছে যা আপনাকে নির্দিষ্ট মোডে চালানোর জন্য মডিউল সেটআপ পরিবর্তন করতে দেয়।
উদাহরণস্বরূপ, তাত্ক্ষণিক অ্যাপ মোড তাত্ক্ষণিক মোড হিসাবে APK ইনস্টলেশনকে জোর করে।
প্যারামিটারাইজেশন ঘটানোর জন্য, কমান্ড লাইনের সাথে এটি সক্ষম করতে হবে:
--enable-parameterized-modules
এর সাথে একটি একক প্রদত্ত মোড চালানোও সম্ভব:
--enable-parameterized-modules --module-parameter <Mode>
--enable-parameterized-modules --module-parameter INSTANT_APP
যখন একটি মডিউলের একটি প্যারামিটারাইজড সংস্করণ চলে, তখন এটি একটি প্যারামিটারাইজড মডিউল নামের অধীনে তার ফলাফল রিপোর্ট করে, উদাহরণস্বরূপ CtsGestureTestCases[instant]
বনাম বেস CtsGestureTestCases
।