آزمایش‌های میزبان JAR

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

مثال

فایل Blueprint زیر یک نمونه ساده از آزمایش میزبان Hello World JAR ارائه می‌دهد تا آن را کپی کنید و با نیازهایتان تطبیق دهید: 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 [options] <HelloWorldHostTest> برای ساختن واحد آزمایشی و همه وابستگی‌های آن استفاده کنید.

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

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

    static_libs: [
        "junit",
    ],