Tradefed XML কনফিগারেশনে টেমপ্লেট এবং অন্তর্ভুক্ত করা আইটেম

টেস্টকে সংজ্ঞায়িত করার জন্য একটি মনোলিথিক XML কনফিগারেশন তৈরি করা সবসময় বাস্তবসম্মত নয়। একই ধরনের টেস্ট চালানোর জন্য আপনি যদি সেট-আপের অংশ আবার ব্যবহার করতে চান, তাহলে আপনাকে দুটি বিশাল XML ফাইল কপি করে রাখতে হবে।

Tradefed XML কনফিগারেশনের মধ্যে template এবং include ট্যাগ ডেফিনিশন এখানে কাজে লাগে। এগুলি আপনাকে কিছু XML কনফিগারেশনে প্লেসহোল্ডার সেট করার অনুমতি দেয় যাতে অন্য XML কনফিগারেশনের অংশ যোগ করা যায়।

টেমপ্লেটের জন্য উদাহরণের সংজ্ঞা

<configuration description="Common base configuration for local runs with minimum overhead">
    <build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />

    <template-include name="preparers" default="empty" />

    <template-include name="test" default="empty" />

    <template-include name="reporters" default="empty" />
</configuration>

টেমপ্লেট হল প্লেসহোল্ডার, যার মধ্যে name থাকে যা সেগুলিকে রেফার করে এবং একটি ঐচ্ছিক default ফিল্ড থাকে। ডিফল্ট ফিল্ড, ডিফল্ট রিপ্লেসমেন্ট XML নির্ধারণ করে যা ব্যবহার করা উচিত।

প্রদত্ত কনফিগারেশনের জন্য টেমপ্লেট পরিবর্তন করতে, কমান্ড লাইনে নিম্নলিখিত কমান্ড প্যারামিটার যোগ করতে হবে:

--template:map <name of template>=<replacement XML config path>

--template:map preparers=empty

যেমন:

<template-include name="preparers" default="empty" />

এই ক্ষেত্রে empty রেফারেন্সটি empty.xml কনফিগারেশনকে বোঝায়, যার মধ্যে কিছু নেই; আমরা এটিকে কিছু দিয়ে রিপ্লেস না করার রেফারেন্স হিসেবে ব্যবহার করি।

XML কনফিগারেশনের পাথ Tradefed-এর JAR রিসোর্সের মধ্যে res/config ফোল্ডারের অ্যাবসোলিউট বা রিলেটিভ হতে পারে। এখানে তাদের কয়েকটি লোকেশন দেওয়া হল:

  • tools/tradefederation/core/res/config
  • tools/tradefederation/core/tests/res/config
  • tools/tradedeferation/contrib/res/config

অন্তর্ভুক্তির উদাহরণ সংজ্ঞা

<configuration description="Common base configuration for local runs with minimum overhead">
    <build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />

    <include name="empty"/>
</configuration>

Includes, Templates-এর চেয়ে সহজ কারণ এতে কোনও কমান্ড লাইন আর্গুমেন্টের প্রয়োজন হয় না; এটি সরাসরি name ট্যাগে রেফারেন্স করা XML-কে এক্সপ্যান্ড করে। টেমপ্লেটের মতো, কনফিগারেশনের পাথ অ্যাবসোলিউট বা রিলেটিভ হতে পারে। তবুও, includes-এর জন্য আমরা শুধুমাত্র রিলেটিভ পাথ ব্যবহার করার সাজেশন দিই কারণ সেগুলি Tradefed-এ আরও বেশি পোর্ট করা যায়। Tradefed অন্য মেশিনে সরানো হলে অ্যাবসোলিউট পাথ কাজ করবে না।

ভুল কনফিগারেশন

ভুল কনফিগারেশনের ক্ষেত্রে, যেমন, রিপ্লেসমেন্ট XML খুঁজে না পাওয়া গেলে, Tradefed একটি ConfigurationException দেখাবে যাতে কী অনুপস্থিত বা ভুল কনফিগার করা হয়েছে তার বিবরণ দেওয়া থাকবে।