ตั้งแต่วันที่ 27 มีนาคม 2025 เป็นต้นไป เราขอแนะนำให้ใช้ android-latest-release
แทน aosp-main
เพื่อสร้างและมีส่วนร่วมใน AOSP โปรดดูข้อมูลเพิ่มเติมที่หัวข้อการเปลี่ยนแปลงใน AOSP
การทดสอบโฮสต์ JAR
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
คุณควรใช้การทดสอบโฮสต์ไฟล์เก็บถาวร Java (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
การตั้งค่า
ดูคำอธิบายการตั้งค่าต่อไปนี้ได้ที่ด้านล่าง
ต้องมีการตั้งค่า name
เมื่อระบุประเภทข้อบังคับ java_test_host
(ที่จุดเริ่มต้นของบล็อก) การตั้งค่านี้จะตั้งชื่อให้กับข้อบังคับ และไฟล์ JAR ที่สร้างขึ้นจะมีชื่อเดียวกันและมีคำต่อท้าย .jar
ในตัวอย่างนี้ ไฟล์ JAR ทดสอบที่ได้จะมีชื่อว่า HelloWorldHostTest.jar
นอกจากนี้ การตั้งค่านี้ยังกำหนดชื่อเป้าหมายของคอมไพล์สำหรับโมดูลด้วย เพื่อให้คุณใช้ make [options] <HelloWorldHostTest>
เพื่อสร้างโมดูลทดสอบและไลบรารีทั้งหมดที่เกี่ยวข้องได้
name: "HelloWorldHostTest",
การตั้งค่า test_suites
ช่วยให้ชุดทดสอบของ Trade Federation ค้นพบการทดสอบได้โดยง่าย คุณสามารถเพิ่มชุดทดสอบอื่นๆ ที่นี่ได้ เช่น CTS เพื่อให้แชร์การทดสอบโฮสต์ JAR ได้
test_suites: ["general-tests"],
การตั้งค่า static_libs
จะสั่งให้ระบบบิลด์รวมเนื้อหาของโมดูลที่มีชื่อไว้ใน APK ที่ได้ของโมดูลปัจจุบัน
ซึ่งหมายความว่าโมดูลที่มีชื่อแต่ละรายการควรสร้างไฟล์ .jar
ระบบจะใช้เนื้อหาของโมดูลในการแก้ไขการอ้างอิง classpath ในระหว่างเวลาคอมไพล์และรวมไว้ใน 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 ],"]]