আপনার সফটওয়্যারের সম্পূর্ণ কোড কভারেজ নিশ্চিত করতে জাভা আর্কাইভ (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 টার্গেট নামও নির্ধারণ করে দেয়, যাতে আপনিmake [options] <HelloWorldHostTest>ব্যবহার করে আপনার টেস্ট মডিউল এবং এর সমস্ত ডিপেন্ডেন্সি বিল্ড করতে পারেন।name: "HelloWorldHostTest",test_suitesসেটিংটি ট্রেড ফেডারেশন টেস্ট হারনেস দ্বারা টেস্টটিকে সহজে খুঁজে পাওয়ার সুযোগ করে দেয়। এখানে অন্যান্য টেস্ট স্যুট, যেমন CTS, যোগ করা যেতে পারে, যাতে JAR হোস্ট টেস্টটি শেয়ার করা যায়।test_suites: ["general-tests"],static_libsসেটিংটি বিল্ড সিস্টেমকে নির্দেশ দেয় যেন নির্দিষ্ট মডিউলগুলোর বিষয়বস্তু বর্তমান মডিউলের চূড়ান্ত APK-তে অন্তর্ভুক্ত করা হয়। এর মানে হলো, প্রতিটি নির্দিষ্ট মডিউল থেকে একটি.jarফাইল তৈরি হওয়ার কথা। মডিউলের বিষয়বস্তু কম্পাইল করার সময় ক্লাসপাথ রেফারেন্সগুলো সমাধান করতে ব্যবহৃত হয় এবং চূড়ান্ত APK-তে অন্তর্ভুক্ত করা হয়।static_libs: [ "junit", ],