जेएआर होस्ट टेस्ट

आपके सॉफ़्टवेयर के पूरे कोड को कवर करने के लिए, 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 सफ़िक्स एक ही होता है. नीचे दिए गए उदाहरण में,नतीजे के तौर पर ली गई जेएआर को HelloWorldHostTest.jar नाम दिया गया है. इसके अलावा, इस सेटिंग से आपके मॉड्यूल के लिए, मेक टारगेट का नाम भी तय होता है, ताकि आप अपने टेस्ट मॉड्यूल और उसकी सभी डिपेंडेंसी बनाने के लिए, make [options] <HelloWorldHostTest> का इस्तेमाल कर सकें.

    name: "HelloWorldHostTest",
    
  • test_suites सेटिंग की मदद से, Trade Federation टेस्ट हार्नेस को टेस्ट आसानी से मिल जाता है. यहां सीटीएस जैसे दूसरे टेस्ट सुइट जोड़े जा सकते हैं, ताकि JAR होस्ट टेस्ट टेस्ट को शेयर किया जा सके.

    test_suites: ["general-tests"],
    
  • static_libs सेटिंग, मौजूदा मॉड्यूल के APK में नाम वाले मॉड्यूल के कॉन्टेंट को शामिल करने के लिए, बिल्ड सिस्टम को निर्देश देती है. इसका मतलब है कि नाम वाले हर मॉड्यूल से एक .jar फ़ाइल बनानी होगी. मॉड्यूल के कॉन्टेंट का इस्तेमाल कंपाइल समय के दौरान क्लासपाथ रेफ़रंस का समाधान करने के लिए किया जाता है और उन्हें नतीजे वाले APK में शामिल किया जाता है.

    static_libs: [
        "junit",
    ],