आपके सॉफ़्टवेयर के पूरे कोड को कवर करने के लिए, Java archive (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", ],