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",
    ],