GoogleTest

GoogleTest (GTest บางครั้งเรียกว่า "การทดสอบดั้งเดิม") สำหรับแพลตฟอร์มโดยทั่วไปจะเข้าถึง HAL ระดับล่างหรือดำเนินการ IPC แบบดิบกับบริการระบบต่างๆ ด้วยเหตุนี้ วิธีการทดสอบจึงมักจะควบคู่ไปกับบริการที่ทดสอบอย่างแน่นหนา

หากต้องการผสานรวมกับโครงสร้างพื้นฐานการทดสอบอย่างต่อเนื่อง ให้สร้าง GTests ของคุณโดยใช้กรอบงาน GTest

ตัวอย่าง

นี่คือตัวอย่างบางส่วนของ Gtest ในแหล่งที่มาของแพลตฟอร์ม:

สรุปขั้นตอน

  1. ทำตาม ตัวอย่างการตั้งค่าโมดูล Gtest

  2. หากต้องการรวมการขึ้นต่อกันของ Gtest โดยอัตโนมัติ ให้ใช้กฎการสร้าง BUILD_NATIVE_TEST ในการกำหนดค่าโมดูลทดสอบของคุณ

  3. เขียนการกำหนดค่าการทดสอบ ตามตัวอย่างสำหรับตัวเลือก แบบง่าย และ ซับซ้อน

  4. สร้างโมดูลทดสอบด้วย mmm สำหรับบิลด์ส่วนเพิ่ม หรือ mma สำหรับบิลด์เต็ม:

    make hwui_unit_tests -j
    
  5. รันการทดสอบในเครื่องโดยใช้ Atest :

      atest hwui_unit_tests
    

    คุณยังสามารถเพิ่มอาร์กิวเมนต์ให้กับ GTests ของคุณได้ ต่อไปนี้เป็นข้อโต้แย้งที่เป็นประโยชน์อย่างยิ่ง:

    • native-test-flag ระบุค่าแฟล็กเพิ่มเติมเพื่อส่งผ่านไปยังคำสั่งเชลล์ Gtest
    • native-test-timeout ระบุค่าการหมดเวลาการทดสอบในหน่วยไมโครวินาที

      รหัสตัวอย่างต่อไปนี้ใช้ทั้งสองอาร์กิวเมนต์เหล่านี้:

      atest test-name -- --module-arg test-name:native-test-flag:"\"argument1 argument2\"" \
         --module-arg test-name:native-test-timeout:60000
      
  6. ดำเนินการทดสอบโดยใช้สายรัดทดสอบของสหพันธ์การค้า:

    make tradefed-all -j
    tradefed.sh run template/local_min --template:map test=hwui_unit_tests
    
  7. ติดตั้งและรันด้วยตนเอง:

    1. พุชไบนารีทดสอบที่สร้างขึ้นไปยังอุปกรณ์ของคุณ:

       adb push ${OUT}/data/nativetest/hwui_unit_tests/hwui_unit_tests \
       /data/nativetest/hwui_unit_tests/hwui_unit_tests
      
    2. เรียกใช้ GTest และดำเนินการทดสอบโดยเรียกใช้ไบนารีการทดสอบบนอุปกรณ์:

       adb shell /data/nativetest/hwui_unit_tests/hwui_unit_tests
      

      สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการปรับแต่งการดำเนินการทดสอบ ให้เพิ่มพารามิเตอร์ --help ลงในไบนารีทดสอบของคุณ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์ โปรดดู คำแนะนำขั้นสูงของ Gtest