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