ইউনিট এবং কার্যকরী পরীক্ষা অন্তর্ভুক্ত করুন

প্রকল্পে কোনো পরিবর্তন আনার পর কীভাবে ট্রেড ফেডারেশন টেস্টগুলো চালানো এবং তাতে অবদান রাখা যায়, তা এই বিভাগে ব্যাখ্যা করা হয়েছে। এর মধ্যে রয়েছে:

  • নতুন ইউনিট টেস্ট ক্লাসগুলো কোথায় যোগ করতে হবে
  • Eclipse-এর ভিতরে এবং বাইরে ইউনিট টেস্ট চালানো
  • ফাংশনাল টেস্ট কোথায় যোগ করতে হবে
  • কার্যকরী পরীক্ষা চালানো হচ্ছে
  • TF প্রিসাবমিট ভ্যালিডেশনের কিছু অংশ স্থানীয়ভাবে চালানো হচ্ছে

ইউনিট টেস্ট যোগ করুন

অ্যান্ড্রয়েড ওপেন সোর্স প্রজেক্ট (AOSP)-এ, tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java- তে ইউনিট টেস্ট ক্লাসটি যোগ করুন।

গুরুত্বপূর্ণ: আপনার নতুন ইউনিট টেস্ট ক্লাসগুলোকে এই স্থানগুলোতে যোগ করলে, সেগুলো কোনো অতিরিক্ত সেটআপ ছাড়াই প্রিসাবমিট-এ স্বয়ংক্রিয়ভাবে চালু হবে।

ইউনিট টেস্ট চালান

ট্রেড ফেডারেশনের সমস্ত AOSP ইউনিট টেস্ট এবং ফাংশনাল টেস্ট tools/tradefederation/core/tests প্রোজেক্টে অবস্থিত।

Eclipse-এর ভিতরে, কোনো একটি ইউনিট টেস্ট চালানোর জন্য, টেস্টটির উপর রাইট-ক্লিক করে Run As > JUnit নির্বাচন করুন। সমস্ত ইউনিট টেস্ট চালানোর জন্য, com.android.tradefed.UnitTests স্যুটটি চালান।

বিল্ড করার পর আপনি ট্রেডফেড সোর্স ট্রি-তে কমান্ড লাইন থেকেও ইউনিট টেস্ট শুরু করতে পারেন, যেমন: tools/tradefederation/core/javatests/run_tradefed_tests.sh

ইউনিট টেস্টগুলো স্বতন্ত্রভাবে চালানো যায়, কিন্তু ফাংশনাল টেস্টগুলো ট্রেড ফেডারেশন ব্যবহার করেই চালানো উচিত; এর জন্য একটি অ্যান্ড্রয়েড ডিভাইস প্রয়োজন। সমস্ত ফাংশনাল টেস্টকে অবশ্যই *FuncTest নামকরণের নিয়মটি অনুসরণ করতে হবে।

ইউনিট পরীক্ষার ফলাফল যাচাই করুন

run_tradefed_tests.sh চালানোর সময়, ইউনিট টেস্টগুলো কিছু ত্রুটিপূর্ণ অবস্থাসহ টেস্ট হারনেসের সমস্ত অংশ পরীক্ষা করে। এটি স্ট্যাক ট্রেস সহ কনসোলে বিশদ আউটপুট প্রিন্ট করবে।

ফলাফলের চূড়ান্ত সারসংক্ষেপ থেকে জানা যাবে কোনো ব্যর্থতা ঘটেছে কি না।

কনসোলে চূড়ান্ত সারাংশের উদাহরণ:

12:55:02 ========== Result Summary ==========
Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]

সমস্ত টেস্ট সফল হওয়ার জন্য রক্ষণাবেক্ষণ করা হয়, তাই আপনার স্থানীয় পরিবর্তনে কোনো ব্যর্থতা ঘটলে অনুগ্রহ করে নিশ্চিত করুন যে টেস্টগুলো ঠিক করা হয়েছে।

কার্যকরী পরীক্ষা যোগ করুন

  • যদি আপনার ফাংশনাল টেস্টে কোনো ডিভাইস জড়িত থাকে (যেকোনো ITestDevice API ব্যবহার করে), তাহলে স্যুট ডেফিনিশনটি com.android.tradefed.DeviceFuncTests এ অবস্থিত। অন্যথায়, স্যুট ডেফিনিশনটি com.android.tradefed.FuncTests এ অবস্থিত।

  • আপনার টেস্ট মেথডগুলো যদি বিদ্যমান সুইট সাব-ক্লাসগুলোর কোনো একটিতে রাখা যুক্তিযুক্ত হয়, তবে সেখানেই যোগ করুন। অন্যথায়, প্রযোজ্য সুইটে একটি নতুন ক্লাস যোগ করতে পারেন।

  • উভয় ক্ষেত্রেই, এটিকে সুইটে যুক্ত করার মাধ্যমে আপনার টেস্টটি অন্যান্য ফাংশনাল টেস্টগুলোর সাথে CI পাইপলাইনে স্বয়ংক্রিয়ভাবে রান হয়ে যায়।

কার্যকরী পরীক্ষা চালান

Eclipse থেকে একটি ফাংশনাল টেস্ট চালানোর জন্য:

  1. নিশ্চিত করুন যে একটি ডিভাইস হোস্টের সাথে সংযুক্ত আছে এবং adb ও প্রয়োজনে fastboot Eclipse-এর PATH-এ অন্তর্ভুক্ত আছে। এটি করার সবচেয়ে সহজ উপায় হলো সঠিক PATH সহ একটি শেল সেটআপ থেকে Eclipse চালু করা।
  2. একটি জাভা অ্যাপ্লিকেশন তৈরি করুন। রান > রান কনফিগারেশন- এর মাধ্যমে কনফিগারেশন চালান।
  3. প্রজেক্টটি tradefed-tests এবং প্রধান ক্লাসটি com.android.tradefed.command.CommandRunner এ সেট করুন।
  4. Run m tradefed-all .
  5. আর্গুমেন্টস ট্যাবে নিম্নলিখিত কমান্ড লাইন আর্গুমেন্টগুলো প্রদান করুন: host --class <full path of test class to run>
  6. রান-এ ক্লিক করুন।

Eclipse-এর বাইরে ফাংশনাল টেস্ট চালানোর জন্য।

  1. বাণিজ্য ফেডারেশন গঠন করুন।
  2. হোস্টের সাথে একটি অ্যান্ড্রয়েড ডিভাইস সংযুক্ত করুন।
  3. tools/tradefederation/core/javatests/run_tradefed_func_tests.sh চালান।
  4. ঐচ্ছিকভাবে, adb devices কমান্ডের আউটপুটে যেমনটি দেখা যায়, সেভাবে --serial <serial no> যোগ করে ডিভাইসটি বেছে নিন।

স্থানীয় পরিবর্তনগুলির বিরুদ্ধে TF প্রিসাবমিট পরীক্ষা চালান।

আপনি যদি টিএফ প্রিসাবমিটের মতো একই পদ্ধতিতে চালাতে চান, তাহলে এটি ব্যবহার করুন:

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

এটি আপনার স্থানীয়ভাবে তৈরি করা TF-এর বিরুদ্ধে সমস্ত TF প্রিসাবমিট টেস্ট চালু করবে, যা আপনাকে যাচাই করতে সাহায্য করবে যে আপনার পরিবর্তনটি কোনো টেস্টকে ব্যাহত করছে না।

TF প্রিসাবমিট টেস্টগুলো হলো উপরের ইউনিট টেস্টগুলোর একটি সুপারসেট, কিন্তু এগুলো চালাতে বেশি সময় লাগে। তাই দ্রুত যাচাইয়ের জন্য ডেভেলপমেন্টের সময় ইউনিট টেস্টগুলো চালানো এবং CL আপলোড করার আগে প্রিসাবমিটগুলো চালানোর পরামর্শ দেওয়া হয়।