Tradefed-এর কনফিগারেশনগুলি পরীক্ষা চালানোর জন্য এবং প্রস্তুতি/সেটআপের ধাপগুলি বর্ণনা করার জন্য একটি XML কাঠামো অনুসরণ করে।
তাত্ত্বিকভাবে, একটি একক কমান্ডের জন্য XML-এ সবকিছু সংজ্ঞায়িত করা যেতে পারে। কিন্তু বাস্তবে, বেস টেমপ্লেট এক্সএমএল ফাইল থাকা এবং অতিরিক্ত কমান্ড লাইন প্যারামিটারের সাথে কাস্টমাইজ করা আরও বাস্তব।
গঠন
<configuration description="<description of the configuration>">
<!-- A build provider that takes local device information -->
<build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />
<!-- Some target preparation, disabled by default -->
<target_preparer class="com.android.tradefed.targetprep.PreloadedClassesPreparer">
<option name="disable" value="true" />
</target_preparer>
<!-- One test running some unit tests -->
<test class="com.android.tradefed.testtype.HostTest">
<option name="class" value="com.android.tradefed.build.BuildInfoTest" />
</test>
<!-- [OPTIONAL] -->
<logger class="com.android.tradefed.log.FileLogger">
<option name="log-level" value="VERBOSE" />
<option name="log-level-display" value="VERBOSE" />
</logger>
<!-- [OPTIONAL] -->
<log_saver class="com.android.tradefed.result.FileSystemLogSaver" />
<!-- As many reporters as we want -->
<result_reporter class="com.android.tradefed.result.ConsoleResultReporter" />
<result_reporter class="com.android.tradefed.result.suite.SuiteResultReporter" />
<result_reporter class="com.android.tradefed.result.MetricsXMLResultReporter"/>
</configuration>
সামগ্রিক ট্রেডফেড এক্সএমএলকে <configuration>
ট্যাগ দ্বারা সীমাবদ্ধ করা হয়েছে। Tradefed objects
তাদের নিজস্ব ট্যাগে সংজ্ঞায়িত করা হয়েছে, উদাহরণস্বরূপ: build_provider
, target_preparer
, test
, ইত্যাদি। তাদের স্বতন্ত্র উদ্দেশ্যগুলি আর্কিটেকচার বিভাগে আরও বিশদে বর্ণনা করা হয়েছে।
প্রতিটি অবজেক্টের জাভা ক্লাস রয়েছে class=
এ সংজ্ঞায়িত অবজেক্টের সাথে যা রানটাইমে সমাধান করা হয়; সুতরাং যতক্ষণ পর্যন্ত ক্লাস ধারণকারী JAR ফাইলটি ট্রেডফেড জাভা ক্লাসপথে থাকবে, ততক্ষণ এটি খুঁজে পাওয়া যাবে এবং সমাধান করা হবে।
Tradefed বস্তুর আদেশ
বিভিন্ন ট্যাগের ক্রম কোন ব্যাপার না। উদাহরণস্বরূপ, target_preparer
পরে build_provider
নির্দিষ্ট করা থাকলে এতে কোন পার্থক্য নেই। পরীক্ষার আহবানের প্রবাহটি জোতা দ্বারা প্রয়োগ করা হয়, তাই এটি সর্বদা সঠিক ক্রমে তাদের কল করবে।
একই ট্যাগ সহ বস্তুর ক্রম গুরুত্বপূর্ণ । উদাহরণস্বরূপ, সংজ্ঞায়িত দুটি target_preparer
বস্তুকে XML-এ তাদের সংজ্ঞার ক্রম অনুসারে বলা হবে। এটি বোঝা গুরুত্বপূর্ণ কারণ এটি ডিভাইস সেটআপের শেষ অবস্থা পরিবর্তন করতে পারে। উদাহরণস্বরূপ, ফ্ল্যাশিং তারপর একটি apk ইনস্টল করা একটি apk ইনস্টল করা এবং ফ্ল্যাশ করার মতো হবে না কারণ ফ্ল্যাশিং ডিভাইসটি মুছে ফেলবে৷
Tradefed-এর কনফিগারেশনগুলি পরীক্ষা চালানোর জন্য এবং প্রস্তুতি/সেটআপের ধাপগুলি বর্ণনা করার জন্য একটি XML কাঠামো অনুসরণ করে।
তাত্ত্বিকভাবে, একটি একক কমান্ডের জন্য XML-এ সবকিছু সংজ্ঞায়িত করা যেতে পারে। কিন্তু বাস্তবে, বেস টেমপ্লেট এক্সএমএল ফাইল থাকা এবং অতিরিক্ত কমান্ড লাইন প্যারামিটারের সাথে কাস্টমাইজ করা আরও বাস্তব।
গঠন
<configuration description="<description of the configuration>">
<!-- A build provider that takes local device information -->
<build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />
<!-- Some target preparation, disabled by default -->
<target_preparer class="com.android.tradefed.targetprep.PreloadedClassesPreparer">
<option name="disable" value="true" />
</target_preparer>
<!-- One test running some unit tests -->
<test class="com.android.tradefed.testtype.HostTest">
<option name="class" value="com.android.tradefed.build.BuildInfoTest" />
</test>
<!-- [OPTIONAL] -->
<logger class="com.android.tradefed.log.FileLogger">
<option name="log-level" value="VERBOSE" />
<option name="log-level-display" value="VERBOSE" />
</logger>
<!-- [OPTIONAL] -->
<log_saver class="com.android.tradefed.result.FileSystemLogSaver" />
<!-- As many reporters as we want -->
<result_reporter class="com.android.tradefed.result.ConsoleResultReporter" />
<result_reporter class="com.android.tradefed.result.suite.SuiteResultReporter" />
<result_reporter class="com.android.tradefed.result.MetricsXMLResultReporter"/>
</configuration>
সামগ্রিক ট্রেডফেড এক্সএমএলকে <configuration>
ট্যাগ দ্বারা সীমাবদ্ধ করা হয়েছে। Tradefed objects
তাদের নিজস্ব ট্যাগে সংজ্ঞায়িত করা হয়েছে, উদাহরণস্বরূপ: build_provider
, target_preparer
, test
, ইত্যাদি। তাদের স্বতন্ত্র উদ্দেশ্যগুলি আর্কিটেকচার বিভাগে আরও বিশদে বর্ণনা করা হয়েছে।
প্রতিটি অবজেক্টের জাভা ক্লাস রয়েছে class=
এ সংজ্ঞায়িত অবজেক্টের সাথে যা রানটাইমে সমাধান করা হয়; সুতরাং যতক্ষণ পর্যন্ত ক্লাস ধারণকারী JAR ফাইলটি ট্রেডফেড জাভা ক্লাসপথে থাকবে, ততক্ষণ এটি খুঁজে পাওয়া যাবে এবং সমাধান করা হবে।
Tradefed বস্তুর আদেশ
বিভিন্ন ট্যাগের ক্রম কোন ব্যাপার না। উদাহরণস্বরূপ, target_preparer
পরে build_provider
নির্দিষ্ট করা থাকলে এতে কোন পার্থক্য নেই। পরীক্ষার আহবানের প্রবাহটি জোতা দ্বারা প্রয়োগ করা হয়, তাই এটি সর্বদা সঠিক ক্রমে তাদের কল করবে।
একই ট্যাগ সহ বস্তুর ক্রম গুরুত্বপূর্ণ । উদাহরণস্বরূপ, সংজ্ঞায়িত দুটি target_preparer
বস্তুকে XML-এ তাদের সংজ্ঞার ক্রম অনুসারে বলা হবে। এটি বোঝা গুরুত্বপূর্ণ কারণ এটি ডিভাইস সেটআপের শেষ অবস্থা পরিবর্তন করতে পারে। উদাহরণস্বরূপ, ফ্ল্যাশিং তারপর একটি apk ইনস্টল করা একটি apk ইনস্টল করা এবং ফ্ল্যাশ করার মতো হবে না কারণ ফ্ল্যাশিং ডিভাইসটি মুছে ফেলবে৷