প্রথমে, ট্রেডফেডে অপশন হ্যান্ডলিং সম্পর্কে আপনার ধারণা স্পষ্ট করে নিন।
স্যুট সেটআপ স্যুট কাঠামোতে বিদ্যমান দুটি স্তরকে বর্ণনা করে:
- শীর্ষ-স্তরের স্যুট
- মডিউলগুলি
একটি নন-সুইট ট্রেডফেড প্রেক্ষাপটে, এটি নিয়ে ভাবার কোনো প্রয়োজন নেই; প্রতিটি অপশনই পূর্ণাঙ্গভাবে ব্যবহৃত হয়। একটি সুইট প্রেক্ষাপটে, মডিউলগুলোকে সুইট থেকে বিচ্ছিন্ন রাখা হয়; তাই তাদের স্তরে সব অপশন উপলব্ধ থাকে না।
শীর্ষ-স্তরের স্যুটে পাস বিকল্পগুলি
শীর্ষ-স্তরের স্যুটটি একটি সাধারণ ট্রেডফেড কনফিগারেশনের মতো আচরণ করে: স্যুট রানার সহ সম্পূর্ণ কনফিগারেশনটি একটি নন-স্যুট ট্রেডফেড কনফিগারেশনের মতো সমস্ত বিকল্প গ্রহণ করে।
মডিউলগুলিতে বিকল্পগুলি পাস করুন
ডিফল্টরূপে মডিউলগুলো কমান্ডে পাঠানো কোনো অপশন গ্রহণ করে না । অপশনগুলো পাওয়ার জন্য module-arg অপশনের মাধ্যমে সেগুলোকে সুস্পষ্টভাবে টার্গেট করতে হয়। মডিউলের অপশনগুলোর এই পৃথকীকরণ ডিবাগিংকে সহজ করে তোলে।
উদাহরণ:
cts-tradefed run cts --module-arg <module-name>:<option-name>:<option-value>
cts-tradefed run cts --module-arg CtsGestureTestCases:collect-tests-only:true
এই সিনট্যাক্সটি নিশ্চিত করে যে টার্গেট করা মডিউলটি প্রদত্ত অপশনটি পাবে।
মডিউলগুলিতে অপশন পাস করার আরও কিছু উপায় আছে, যেমন test-arg , যা আপনাকে রানারের ধরন বা ক্লাসের উপর ভিত্তি করে প্রতিটি মডিউলের টেস্ট রানারে অপশন পাস করার সুযোগ দেয়।
উদাহরণ:
cts-tradefed run cts --test-arg <test-class>:<option-name>:<option-value>
cts-tradefed run cts --test-arg com.android.tradefed.testtype.JarHosttest:collect-tests-only:true
এই সিনট্যাক্সটি কোনো নির্দিষ্ট মডিউলকে লক্ষ্য করে না, বরং প্রদত্ত ক্লাসের সমস্ত টেস্ট রানারকে লক্ষ্য করে। test-arg অপশনগুলোর সম্ভাব্য প্রাপক হিসেবে শুধুমাত্র IRemoteTest ( ডকুমেন্টেশন , সোর্স কোড ) অথবা ITargetPreparer ( ডকুমেন্টেশন , সোর্স কোড )-এর ইমপ্লিমেন্টেশনগুলোকেই বিবেচনা করে।
java_test_host-এ একটি জাভা টেস্ট ক্লাসে অপশন পাস করুন
যদি আপনি java_test_host বিল্ড টার্গেটের অংশ হিসেবে আপনার জাভা টেস্ট ক্লাসে একটি @Option যোগ করেন, তাহলে সেই অপশনটি ইনজেক্ট করার জন্য আপনাকে নিম্নলিখিতটি ব্যবহার করতে হবে:
cts-tradefed run cts --module-arg <module-name>:set-option:<option-name>:<option-value>
এই প্রসঙ্গে, set-option হলো আপনার জাভা ক্লাসগুলোকে র্যাপ করা টেস্ট হারনেস থেকে HostTest রানারের সেই অপশনটি, যা ক্লাসগুলোকে এক্সিকিউট করার জন্য ব্যবহৃত হয়।
যদি আপনার jar ফাইলের অপশন টার্গেটে একাধিক টেস্ট ক্লাস থাকে, তাহলে ডিফল্টরূপে সেগুলোতে @option নির্দিষ্ট করা থাকবে বলে আশা করা হয়, অথবা একটিমাত্র ক্লাসকে টার্গেট করতে নিম্নলিখিত সিনট্যাক্সটি ব্যবহার করুন:
cts-tradefed run cts --module-arg <module-name>:set-option:<class-name>:<option-name>:<option-value>
স্যুটে ফিল্টারগুলি পাস করুন
একটি টেস্ট স্যুট থেকে কিছু টেস্ট ফিল্টার করতে, আমরা যথাক্রমে কোনো নির্দিষ্ট টেস্ট বা মডিউলকে জোর করে অন্তর্ভুক্ত বা বাদ দেওয়ার জন্য --include-filter এবং --exclude-filter ব্যবহার করি। বাদ দেওয়ার ক্ষেত্রে অগ্রাধিকার বেশি।
তারা এই বিন্যাসটি ব্যবহার করে: [abi] <module-name> [test name]
উদাহরণ:
--include-filter CtsGestureTestCases
--include-filter armeabi-v7a CtsGestureTestCases
--include-filter armeabi-v7a CtsGestureTestCases android.gesture.cts.GestureTest#testGetStrokes