ট্রেডফেডের কনফিগারেশনগুলো একটি XML কাঠামো অনুসরণ করে, যা চালনাযোগ্য পরীক্ষা এবং করণীয় প্রস্তুতি ও সেটআপ ধাপগুলো বর্ণনা করে।
তাত্ত্বিকভাবে, একটিমাত্র কমান্ডের জন্য সবকিছু 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 ফাইলটি যদি ট্রেডফেড জাভা ক্লাসপাথে থাকে, তবে ক্লাসটি খুঁজে পাওয়া যাবে এবং নির্ধারিত হবে।
ট্রেডফেড বস্তুর অর্ডার
বিভিন্ন ট্যাগের ক্রম গুরুত্বপূর্ণ নয়। উদাহরণস্বরূপ, target_preparer পরে build_provider নির্দিষ্ট করা হলেও কোনো পার্থক্য হয় না। টেস্ট আহ্বানের প্রবাহ হারনেস নিজেই নিয়ন্ত্রণ করে, তাই এটি সর্বদা সঠিক ক্রমেই সেগুলোকে কল করবে।
একই ট্যাগযুক্ত অবজেক্টগুলোর ক্রম গুরুত্বপূর্ণ । উদাহরণস্বরূপ, XML-এ সংজ্ঞায়িত দুটি target_preparer অবজেক্টকে তাদের সংজ্ঞার ক্রম অনুসারে কল করা হবে। এটি বোঝা জরুরি, কারণ এটি ডিভাইস সেটআপের চূড়ান্ত অবস্থা পরিবর্তন করতে পারে। উদাহরণস্বরূপ, ফ্ল্যাশ করার পর একটি এপিকে ইনস্টল করা এবং একটি এপিকে ইনস্টল করে ফ্ল্যাশ করা একই জিনিস নয়, কারণ ফ্ল্যাশ করলে ডিভাইসটির ডেটা মুছে যাবে।