প্রোজেক্টে পরিবর্তন করার পরে কীভাবে ট্রেড ফেডারেশন টেস্ট রান ও কন্ট্রিবিউট করতে হয় তা এই বিভাগে ব্যাখ্যা করা হয়েছে। এর মধ্যে রয়েছে:
- নতুন ইউনিট টেস্ট ক্লাস কোথায় যোগ করতে হবে
- Eclipse এবং Eclipse IDE-এর বাইরে ইউনিট টেস্ট রান করা
- কোথায় ফাংশনাল টেস্ট যোগ করতে হবে
- ফাংশনাল টেস্ট চালানো
- TF-এর কিছু প্রি-সাবমিট ভ্যালিডেশন লোকালি চালানো
ইউনিট টেস্ট যোগ করা
Android ওপেন সোর্স প্রজেক্টে (AOSP), এখানে ইউনিট টেস্ট ক্লাস যোগ করুন: tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java
গুরুত্বপূর্ণ: এইসব লোকেশনে আপনার নতুন ইউনিট টেস্ট ক্লাস যোগ করলে, অতিরিক্ত সেট-আপ ছাড়াই সেগুলি অটোমেটিক প্রি-সাবমিটে রান করবে।
ইউনিট টেস্ট চালানো
ট্রেড ফেডারেশনের জন্য সমস্ত AOSP ইউনিট টেস্ট এবং ফাংশনাল টেস্ট
tools/tradefederation/core/tests
প্রোজেক্টে
থাকে।
Eclipse-এর মধ্যে, কোনও স্বতন্ত্র ইউনিট টেস্ট রান করাতে, শুধু টেস্টের উপর ডানদিকের মাউস বোতামে ক্লিক করুন এবং এভাবে রান করান > JUnit বিকল্প বেছে নিন। সব ইউনিট টেস্ট রান করতে, com.android.tradefed.UnitTests স্যুট রান করুন।
এছাড়াও, আপনি Tradefed সোর্স
ট্রি-তে কমান্ড লাইন থেকে ইউনিট টেস্ট শুরু করতে পারেন, যেমন:
tools/tradefederation/core/javatests/run_tradefed_tests.sh
ইউনিট টেস্ট স্বতন্ত্রভাবে চালানো যায়, কিন্তু ফাংশনাল টেস্ট Trade Federation ব্যবহার করে চালাতে হয়।
এর জন্য Android ডিভাইস প্রয়োজন। সব ফাংশনাল
টেস্টের ক্ষেত্রে *FuncTest নামকরণের কনভেনশন মেনে চলতে হবে।
ইউনিট টেস্টের ফলাফল চেক করা
run_tradefed_tests.sh চালানোর সময়, ইউনিট টেস্ট, কিছু সমস্যা সংক্রান্ত অবস্থা সহ টেস্ট হার্নেসের
সব অংশ ব্যবহার করে। এটি কনসোলে ভার্বোজ আউটপুট
প্রিন্ট করবে, যার মধ্যে স্ট্যাক ট্রেস অন্তর্ভুক্ত।
ফলাফলের চূড়ান্ত সারসংক্ষেপ থেকে বোঝা যাবে যে কোনও সমস্যা হয়েছে কিনা।
কনসোলে চূড়ান্ত সারসংক্ষেপের উদাহরণ:
12:55:02 ========== Result Summary ==========
Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]
সব টেস্ট যাতে পাস করে তা দেখা হয়, তাই আপনার স্থানীয় পরিবর্তনে কোনও সমস্যা হলে টেস্টগুলি ঠিক করা হয়েছে কিনা তা নিশ্চিত করুন।
ফাংশনাল টেস্ট যোগ করা
আপনার ফাংশনাল টেস্টে কোনও ডিভাইস (যেকোনও
ITestDeviceAPI ব্যবহার করে) থাকলে, সুইট সংজ্ঞাcom.android.tradefed.DeviceFuncTests-এ থাকে। অন্যথায়, স্যুট সংজ্ঞাcom.android.tradefed.FuncTests-এ থাকে।আপনার টেস্ট পদ্ধতি যদি আগে থেকে থাকা কোনও সুইট সাব-ক্লাসে যোগ করা যায়, তাহলে সেখানেই যোগ করুন। অন্যথায়, প্রযোজ্য স্যুটে নতুন ক্লাস যোগ করতে দ্বিধা করবেন না।
যাই হোক না কেন, স্যুটে এটি যোগ করার মাধ্যমে, আপনার টেস্ট অটোমেটিক CI পাইপলাইনে অন্যান্য ফাংশনাল টেস্টের সাথে রান করা হয়।
ফাংশনাল টেস্ট রান করা
Eclipse থেকে ফাংশনাল টেস্ট চালাতে:
- হোস্টের সাথে কোনও ডিভাইস কানেক্ট করা আছে কিনা এবং
adbও প্রয়োজনেfastbootEclipse-এর PATH-এ আছে কিনা তা নিশ্চিত করুন। এটি করার সবচেয়ে সহজ উপায় হল, সঠিক PATH সহ শেল সেট-আপ থেকে Eclipse লঞ্চ করা। - Java অ্যাপ্লিকেশন তৈরি করুন। রান > রান কনফিগারেশন বিকল্পের মাধ্যমে কনফিগারেশন রান করুন।
- প্রোজেক্টকে
tradefed-testsএবং মূল ক্লাসকেcom.android.tradefed.command.CommandRunnerহিসেবে সেট করুন। - রান
m tradefed-all - আর্গুমেন্ট ট্যাবে নিম্নলিখিত কমান্ড লাইন আর্গুমেন্ট প্রদান করুন:
host --class <full path of test class to run> - রান করুন বিকল্পে ক্লিক করুন।
Eclipse-এর বাইরে ফাংশনাল টেস্ট চালানোর জন্য।
- ট্রেড ফেডারেশন তৈরি করুন।
- হোস্টের সাথে Android ডিভাইস কানেক্ট করুন।
tools/tradefederation/core/javatests/run_tradefed_func_tests.shটি রান করুন- বিকল্প হিসেবে,
adb devices-এর আউটপুটে যেভাবে দেখা যায় সেইভাবে--serial <serial no>যোগ করে ডিভাইস বেছে নিন।
স্থানীয় পরিবর্তনের বিরুদ্ধে TF প্রি-সাবমিট টেস্ট রান করা
আপনি যদি TF presubmit-এর মতো একইভাবে চালাতে চান, তাহলে এটি ব্যবহার করুন:
tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh
এটি আপনার লোকালি তৈরি TF-এর বিরুদ্ধে সমস্ত TF প্রিসাবমিট টেস্ট ট্রিগার করবে যাতে আপনার পরিবর্তন কোনও টেস্টকে ব্রেক করছে না তা যাচাই করতে আপনাকে সাহায্য করে।
TF প্রি-সাবমিট টেস্ট হল উপরের ইউনিট টেস্টের একটি সুপারসেট, কিন্তু এটি রান করতে বেশি সময় লাগে। তাই, দ্রুত যাচাইকরণের জন্য ডেভেলপমেন্টের সময় ইউনিট টেস্ট চালানো এবং CL আপলোড করার আগে প্রি-সাবমিট চালানো ভালো।