החל מ-27 במרץ 2025, מומלץ להשתמש ב-android-latest-release
במקום ב-aosp-main
כדי ליצור תרומות ל-AOSP. מידע נוסף זמין במאמר שינויים ב-AOSP.
בדיקות של מארחי JAR
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
צריך להטמיע בדיקות מארח של קובץ Java archive (JAR) כדי לספק כיסוי מלא של הקוד בתוכנה. פועלים לפי ההוראות ליצירת בדיקות יחידה מקומיות.
כותבים בדיקות יחידה קטנות כדי לאמת פונקציה ספציפית בלבד.
דוגמה
קובץ ה-Blueprint הבא מכיל דוגמה פשוטה לבדיקת מארח JAR של Hello World, שאפשר להעתיק ולהתאים לצרכים שלכם: 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
הגדרות
בהמשך מפורטות הסבר על ההגדרות הבאות:
ההגדרה name
נדרשת כשמציינים את סוג המודול java_test_host
(בתחילת הבלוק). ההגדרה הזו נותנת שם למודול, ולקובץ ה-JAR שנוצר יש את אותו שם וגם סיומת .jar
. בדוגמה הבאה,שם קובץ ה-JAR לבדיקה הוא HelloWorldHostTest.jar
. בנוסף, ההגדרה הזו מגדירה גם שם יעד של make למודול, כך שתוכלו להשתמש ב-make [options] <HelloWorldHostTest>
כדי ליצור את מודול הבדיקה ואת כל יחסי התלות שלו.
name: "HelloWorldHostTest",
ההגדרה test_suites
מאפשרת לערכת הבדיקה של Trade Federation למצוא בקלות את הבדיקה. אפשר להוסיף לכאן חבילות בדיקה אחרות, כמו CTS, כדי שאפשר יהיה לשתף את בדיקת המארח של JAR.
test_suites: ["general-tests"],
ההגדרה static_libs
מורה למערכת ה-build לשלב את התוכן של המודולים שצוינו בחבילת ה-APK שמתקבלת מהמודול הנוכחי.
כלומר, כל מודול בעל שם אמור ליצור קובץ .jar
.
תוכן המודול משמש לפתרון הפניות לנתיב הספריות בזמן הידור, והוא משולב בקובץ ה-APK שנוצר.
static_libs: [
"junit",
],
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-27 (שעון UTC).
[[["התוכן קל להבנה","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-27 (שעון UTC)."],[],[],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 ],"]]