JAR होस्ट टेस्ट

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