تست میزبان JAR

تست های میزبان بایگانی جاوا (JAR) باید برای ارائه پوشش کد کامل نرم افزار شما پیاده سازی شود. دستورالعمل های ساخت تست های واحد محلی را دنبال کنید. تست های واحد کوچک را بنویسید تا یک تابع خاص را تایید کنید و نه بیشتر.

مثال

فایل Blueprint زیر یک نمونه آزمایش ساده میزبان JAR Hello World را برای کپی و تطبیق با نیازهای شما ارائه می دهد: platform_testing/tests/example/jarhosttest/Android.bp

این مربوط به کد آزمایشی واقعی است که در: platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java

یک عکس فوری از فایل Blueprint برای راحتی در اینجا گنجانده شده است:

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 target برای ماژول شما تعریف می کند، به طوری که می توانید make [options] <HelloWorldHostTest> برای ساخت ماژول آزمایشی خود و همه وابستگی های آن استفاده کنید.

    name: "HelloWorldHostTest",
    
  • تنظیمات test_suites باعث می شود که تست به راحتی توسط مهار تست فدراسیون تجارت قابل شناسایی باشد. مجموعه‌های تست دیگری مانند CTS را می‌توان در اینجا اضافه کرد تا تست میزبان JAR به اشتراک گذاشته شود.

    test_suites: ["general-tests"],
    
  • تنظیمات static_libs به سیستم ساخت دستور می‌دهد که محتویات ماژول‌های نام‌گذاری شده را در APK حاصل از ماژول فعلی ترکیب کند. این بدان معنی است که انتظار می رود هر ماژول نامگذاری شده یک فایل .jar تولید کند. محتوای ماژول برای حل ارجاعات مسیر کلاس در طول زمان کامپایل استفاده می‌شود و در APK حاصل گنجانده می‌شود.

    static_libs: [
        "junit",
    ],