JAR হোস্ট টেস্ট

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

উদাহরণ

নিচে দেওয়া ব্লুপ্রিন্ট ফাইলটি একটি সাধারণ Hello World 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 সেটিং Trade Federation টেস্ট হারনেসের মাধ্যমে টেস্টকে সহজে খুঁজে পাওয়ার উপযুক্ত করে তোলে। এখানে CTS-এর মতো অন্যান্য টেস্ট স্যুট যোগ করা যেতে পারে, যাতে JAR হোস্ট টেস্ট শেয়ার করা যায়।

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

    static_libs: [
        "junit",
    ],