از 27 مارس 2025، توصیه می کنیم از android-latest-release
به جای aosp-main
برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
تست میزبان 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",
],
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# JAR host tests\n\nJava archive (JAR) host tests should be implemented to provide complete code\ncoverage of your software. Follow the instructions to [Build local unit\ntests](https://developer.android.com/training/testing/unit-testing/local-unit-tests).\nWrite small unit tests to validate a specific function and nothing more.\n\nExample\n-------\n\nThe following Blueprint file provides a simple Hello World JAR host test example\nto copy and adapt to your needs:\n[platform_testing/tests/example/jarhosttest/Android.bp](https://android.googlesource.com/platform/platform_testing/+/android16-release/tests/example/jarhosttest/Android.bp)\n\nThis corresponds to the actual test code found at:\n[platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java](https://android.googlesource.com/platform/platform_testing/+/android16-release/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java)\n\nA snapshot of the Blueprint file is included here for convenience: \n\n java_test_host {\n name: \"HelloWorldHostTest\",\n\n test_suites: [\"general-tests\"],\n\n srcs: [\"test/**/*.java\"],\n\n static_libs: [\n \"junit\",\n \"mockito\",\n ],\n }\n\nThe `java_test_host` declaration at the beginning indicates that this is a JAR\nhost test. See an example of its use in:\n[frameworks/base/tools/powermodel/Android.bp](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android16-release/tools/powermodel/Android.bp)\n\nSettings\n--------\n\nSee below for explanations of the following settings:\n\n- The `name` setting is required when the `java_test_host` module type is\n specified (at the start of the block). This setting gives a name to your\n module, and the resulting JAR has the same name and a `.jar` suffix. In the\n example below,the resulting test JAR is named `HelloWorldHostTest.jar`. In\n addition, this setting also defines a make target name for your module, so\n that you can use `make [options] \u003cHelloWorldHostTest\u003e` to build your test\n module and all its dependencies.\n\n name: \"HelloWorldHostTest\",\n\n- The `test_suites` setting makes the test easily discoverable by the Trade\n Federation test harness. Other test suites can be added here, such as CTS,\n so that the JAR host test test can be shared.\n\n test_suites: [\"general-tests\"],\n\n- The `static_libs` setting instructs the build system to incorporate the\n contents of the named modules into the resulting APK of the current module.\n This means that each named module is expected to produce a `.jar` file.\n The module's content is used for resolving classpath references during\n compile time and incorporated into the resulting APK.\n\n static_libs: [\n \"junit\",\n ],"]]