JAR হোস্ট পরীক্ষা

আপনার সফ্টওয়্যারের সম্পূর্ণ কোড কভারেজ প্রদানের জন্য জাভা আর্কাইভ (JAR) হোস্ট পরীক্ষাগুলি প্রয়োগ করা উচিত। স্থানীয় ইউনিট পরীক্ষা তৈরি করতে নির্দেশাবলী অনুসরণ করুন। একটি নির্দিষ্ট ফাংশন যাচাই করতে ছোট ইউনিট পরীক্ষা লিখুন এবং এর বেশি কিছু নয়।

উদাহরণ

নিম্নলিখিত ব্লুপ্রিন্ট ফাইলটি আপনার প্রয়োজনে অনুলিপি এবং মানিয়ে নিতে একটি সাধারণ হ্যালো ওয়ার্ল্ড JAR হোস্ট পরীক্ষার উদাহরণ প্রদান করে: platform_testing/tests/example/jarhosttest/Android.bp

এটি এখানে পাওয়া আসল পরীক্ষার কোডের সাথে মিলে যায়: platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java

সুবিধার জন্য ব্লুপ্রিন্ট ফাইলের একটি স্ন্যাপশট এখানে অন্তর্ভুক্ত করা হয়েছে:

java_test_host {
    name: "HelloWorldHostTest",

    test_suites: ["general-tests"],

    srcs: ["test/**/*.java"],

    static_libs: [
        "junit",
        "mockito",
    ],
}

শুরুতে java_test_host ঘোষণাটি নির্দেশ করে যে এটি একটি JAR হোস্ট পরীক্ষা। এর ব্যবহারের একটি উদাহরণ দেখুন: frameworks/base/tools/powermodel/Android.bp

সেটিংস

নিম্নলিখিত সেটিংসের ব্যাখ্যার জন্য নীচে দেখুন:

  • java_test_host মডিউল টাইপ নির্দিষ্ট করা হলে name সেটিং প্রয়োজন হয় (ব্লকের শুরুতে)। এই সেটিংটি আপনার মডিউলের একটি নাম দেয় এবং ফলস্বরূপ JAR-এর একই নাম এবং একটি .jar প্রত্যয় রয়েছে। নীচের উদাহরণে, ফলাফলের পরীক্ষা JAR-এর নাম দেওয়া হয়েছে HelloWorldHostTest.jar । এছাড়াও, এই সেটিংটি আপনার মডিউলের জন্য একটি মেক টার্গেট নামও সংজ্ঞায়িত করে, যাতে আপনি আপনার টেস্ট মডিউল এবং এর সমস্ত নির্ভরতা তৈরি করতে make [options] <HelloWorldHostTest> ব্যবহার করতে পারেন।

    name: "HelloWorldHostTest",
    
  • test_suites সেটিং ট্রেড ফেডারেশন পরীক্ষার জোতা দ্বারা পরীক্ষাটিকে সহজেই আবিষ্কারযোগ্য করে তোলে। অন্যান্য টেস্ট স্যুট এখানে যোগ করা যেতে পারে, যেমন CTS, যাতে JAR হোস্ট টেস্ট পরীক্ষা শেয়ার করা যায়।

    test_suites: ["general-tests"],
    
  • static_libs সেটিং বিল্ড সিস্টেমকে নির্দেশ দেয় যে নাম দেওয়া মডিউলের বিষয়বস্তু বর্তমান মডিউলের ফলে আসা APK-এ একত্রিত করতে। এর মানে হল যে প্রতিটি নামযুক্ত মডিউল একটি .jar ফাইল তৈরি করবে বলে আশা করা হচ্ছে। মডিউলের বিষয়বস্তু কম্পাইলের সময় ক্লাসপাথ রেফারেন্সগুলি সমাধান করার জন্য ব্যবহৃত হয় এবং ফলস্বরূপ APK-এ অন্তর্ভুক্ত করা হয়।

    static_libs: [
        "junit",
    ],