GoogleTest (GTest หรือบางครั้งเรียกว่า "การทดสอบแบบเนทีฟ") สำหรับแพลตฟอร์มโดยทั่วไปจะเข้าถึง HAL ระดับล่างหรือดำเนินการ IPC ดิบกับบริการต่างๆ ของระบบ ด้วยเหตุนี้ วิธีการทดสอบจึงมักจะควบคู่ไปกับบริการภายใต้การทดสอบ
หากต้องการผสานรวมกับโครงสร้างพื้นฐานการทดสอบอย่างต่อเนื่อง ให้สร้าง GTests ของคุณโดยใช้เฟรมเวิ ร์ก GTest
ตัวอย่าง
นี่คือตัวอย่างบางส่วนของ GTest ในแหล่งที่มาของแพลตฟอร์ม:
สรุปขั้นตอน
- ทำตาม ตัวอย่างการตั้งค่าโมดูล GTest
- หากต้องการรวมการพึ่งพา GTest โดยอัตโนมัติ ให้ใช้กฎ
BUILD_NATIVE_TEST
ในการกำหนดค่าโมดูลทดสอบของคุณ - เขียนการกำหนดค่าการทดสอบตามตัวอย่างสำหรับตัวเลือกที่ ง่าย และ ซับซ้อน
สร้างโมดูลทดสอบด้วย
mmm
สำหรับบิลด์ที่เพิ่มขึ้น หรือmma
สำหรับบิลด์แบบเต็ม:make hwui_unit_tests -j
เรียกใช้การทดสอบในเครื่องโดยใช้ Atest :
atest hwui_unit_tests
คุณยังสามารถเพิ่มอาร์กิวเมนต์ให้กับ GTests ของคุณได้ ต่อไปนี้เป็นอาร์กิวเมนต์ที่มีประโยชน์อย่างยิ่ง: * native-test-flag
ระบุค่าแฟล็กเพิ่มเติมเพื่อส่งผ่านไปยังคำสั่ง GTest เชลล์ * native-test-timeout
ระบุค่าการหมดเวลาการทดสอบเป็นไมโครวินาที
โค้ดตัวอย่างต่อไปนี้ใช้อาร์กิวเมนต์ทั้งสองนี้:
<pre class="devsite-terminal devsite-click-to-copy">
atest <var>test-name</var> -- --module-arg <var>test-name</var>:native-test-flag:"\"<var>argument1</var> <var>argument2</var>\"" \
--module-arg <var>test-name</var>:native-test-timeout:60000
</pre>
ทำการทดสอบด้วยสายรัดทดสอบของสหพันธ์การค้า:
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