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

এই বিভাগটি ব্যাখ্যা করে কিভাবে প্রকল্পে পরিবর্তন করার পর ট্রেড ফেডারেশন পরীক্ষা চালাতে হবে এবং অবদান রাখতে হবে। এটা অন্তর্ভুক্ত:

  • যেখানে নতুন ইউনিট পরীক্ষার ক্লাস যোগ করতে হবে
  • Eclipse এ এবং Eclipse IDE এর বাইরে ইউনিট পরীক্ষা চলছে
  • যেখানে কার্যকরী পরীক্ষা যোগ করতে হবে
  • কার্যকরী পরীক্ষা চলমান
  • স্থানীয়ভাবে 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. চালান m tradefed-all .
  5. আর্গুমেন্ট ট্যাবে নিম্নলিখিত কমান্ড লাইন আর্গুমেন্টগুলি প্রদান করুন: host --class <full path of test class to run>
  6. রান এ ক্লিক করুন।

Eclipse এর বাইরে কার্যকরী পরীক্ষা চালানোর জন্য।

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

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

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

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

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

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