การทดสอบของ Google

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

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

ตัวอย่าง

ต่อไปนี้คือตัวอย่างของ GTest ในแหล่งที่มาของแพลตฟอร์ม

สรุปขั้นตอน

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

  2. หากต้องการรวมทรัพยากร Dependency ของ GTest โดยอัตโนมัติ ให้ใช้ BUILD_NATIVE_TEST กฎบิลด์ในการกำหนดค่าโมดูลทดสอบ

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

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

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

      atest hwui_unit_tests
    

    นอกจากนี้ คุณยังเพิ่มอาร์กิวเมนต์ลงใน GTests ได้ด้วย ต่อไปนี้คืออาร์กิวเมนต์ที่มีประโยชน์อย่างยิ่ง

    • native-test-flag ระบุค่า Flag เพิ่มเติมที่จะส่งผ่านไปยังคำสั่ง Shell ของ GTest
    • native-test-timeout ระบุค่าระยะหมดเวลาของการทดสอบในหน่วยไมโครวินาที

      โค้ดตัวอย่างต่อไปนี้ใช้อาร์กิวเมนต์ทั้ง 2 อย่างนี้

      atest test-name -- --module-arg test-name:native-test-flag:"\"argument1 argument2\"" \
         --module-arg test-name:native-test-timeout:60000
      
  6. ทำการทดสอบด้วยชุดทดสอบของ Trade Federation โดยทำดังนี้

    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