آزمایشهای میزبان بایگانی 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", ],