ตั้งแต่วันที่ 27 มีนาคม 2025 เป็นต้นไป เราขอแนะนำให้ใช้ android-latest-release
แทน aosp-main
เพื่อสร้างและมีส่วนร่วมใน AOSP โปรดดูข้อมูลเพิ่มเติมที่หัวข้อการเปลี่ยนแปลงใน AOSP
GoogleTest
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
GoogleTest (GTest หรือบางครั้งเรียกว่า "การทดสอบแบบเนทีฟ") สําหรับแพลตฟอร์มมักจะเข้าถึง HAL ระดับล่างหรือทํา IPC ดิบกับบริการต่างๆ ของระบบ ด้วยเหตุนี้ แนวทางการทดสอบจึงมักจะเชื่อมโยงกับบริการที่ทดสอบอย่างใกล้ชิด
หากต้องการผสานรวมกับโครงสร้างพื้นฐานการทดสอบอย่างต่อเนื่อง ให้สร้าง GTest โดยใช้เฟรมเวิร์ก GTest
ตัวอย่าง
ตัวอย่าง GTest ในซอร์สโค้ดของแพลตฟอร์มมีดังนี้
สรุปขั้นตอน
ทำตามตัวอย่างการตั้งค่าโมดูล GTest
หากต้องการรวมข้อกําหนดของ GTest โดยอัตโนมัติ ให้ใช้BUILD_NATIVE_TEST
กฎการสร้างในการกําหนดค่าโมดูลการทดสอบ
เขียนการกําหนดค่าการทดสอบโดยทําตามตัวอย่างสําหรับตัวเลือกแบบง่ายและแบบซับซ้อน
สร้างโมดูลทดสอบด้วย mmm
สำหรับบิลด์ที่เพิ่มขึ้น หรือ mma
สำหรับบิลด์แบบสมบูรณ์
make hwui_unit_tests -j
เรียกใช้การทดสอบในเครื่องโดยใช้ Atest
atest hwui_unit_tests
นอกจากนี้ คุณยังเพิ่มอาร์กิวเมนต์ลงใน GTests ได้ด้วย อาร์กิวเมนต์ที่มีประโยชน์อย่างยิ่งมีดังนี้
ทำการทดสอบด้วยชุดทดสอบของ Trade Federation โดยทำดังนี้
make tradefed-all -j
tradefed.sh run template/local_min --template:map test=hwui_unit_tests
ติดตั้งและเรียกใช้ด้วยตนเอง
พุชไบนารีทดสอบที่สร้างขึ้นไปยังอุปกรณ์โดยทำดังนี้
adb push ${OUT}/data/nativetest/hwui_unit_tests/hwui_unit_tests \
/data/nativetest/hwui_unit_tests/hwui_unit_tests
เปิด GTest และทำการทดสอบโดยการเรียกใช้ไบนารีทดสอบในอุปกรณ์
adb shell /data/nativetest/hwui_unit_tests/hwui_unit_tests
ดูข้อมูลเพิ่มเติมเกี่ยวกับการปรับแต่งการเรียกใช้การทดสอบได้โดยเพิ่มพารามิเตอร์ --help
ลงในไบนารีทดสอบ ดูข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์ได้ที่คู่มือขั้นสูงของ GTest
ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา 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,["# GoogleTest\n\nA GoogleTest (GTest, also sometimes called \"native tests\") for the platform\ntypically accesses lower-level HALs or performs raw IPC against various system\nservices. Because of this, the testing approach is usually tightly coupled with\nthe service under test.\n\nTo integrate with continuous testing infrastructure, build your GTests\nusing the [GTest](https://github.com/google/googletest)\nframework.\n\nExamples\n--------\n\nHere are some examples of GTest in the platform source:\n\n- [frameworks/av/camera/tests](https://android.googlesource.com/platform/frameworks/av/+/android16-release/camera/tests/)\n- [frameworks/native/libs/gui/tests](https://android.googlesource.com/platform/frameworks/native/+/android16-release/libs/gui/tests/)\n\nSummary of steps\n----------------\n\n1. Follow the [example GTest module setup](https://android.googlesource.com/platform/frameworks/base/+/android16-release/libs/hwui/tests/unit/).\n\n2. To automatically include GTest dependencies, use the `BUILD_NATIVE_TEST`\n build rule in your test module configuration.\n\n3. Write a test configuration, following the examples for [simple](/docs/core/tests/development/blueprints)\n and [complex](/docs/core/tests/development/test-config) options.\n\n4. Build the test module with `mmm` for incremental builds, or `mma` for full\n builds:\n\n make hwui_unit_tests -j\n\n5. Run the test locally using [Atest](/docs/core/tests/development/atest):\n\n atest hwui_unit_tests\n\n You can also add arguments to your GTests. The following are especially useful arguments:\n - `native-test-flag` specifies additional flag values to pass to the GTest shell command.\n - `native-test-timeout` specifies a test timeout value in microseconds.\n\n The following example code uses both of these arguments: \n\n atest test-name -- --module-arg test-name:native-test-flag:\"\\\"argument1 argument2\\\"\" \\\n --module-arg test-name:native-test-timeout:60000\n\n6. Run the test with the Trade Federation test harness:\n\n make tradefed-all -j\n tradefed.sh run template/local_min --template:map test=hwui_unit_tests\n\n7. Manually install and run:\n\n 1. Push the generated test binary onto your device:\n\n adb push ${OUT}/data/nativetest/hwui_unit_tests/hwui_unit_tests \\\n /data/nativetest/hwui_unit_tests/hwui_unit_tests\n\n 2. Launch GTest and execute the test by invoking the test binary on the device:\n\n adb shell /data/nativetest/hwui_unit_tests/hwui_unit_tests\n\n For more information about customizing test execution, add the `--help`\n parameter to your test binary. For more information on parameters, refer to\n the [GTest advanced guide](https://github.com/google/googletest/blob/master/googletest/docs/advanced.md)."]]