รวมการทดสอบหน่วยและการทดสอบฟังก์ชันการทำงาน

ส่วนนี้อธิบายวิธีเรียกใช้และมีส่วนร่วมในการทดสอบ Trade Federation หลังจากทำการเปลี่ยนแปลงโปรเจ็กต์ ซึ่งรวมถึงข้อมูลต่อไปนี้

  • ตำแหน่งที่จะเพิ่มคลาสการทดสอบหน่วยใหม่
  • การเรียกใช้การทดสอบหน่วยใน Eclipse และภายนอก Eclipse IDE
  • ตำแหน่งที่ควรเพิ่มการทดสอบการทำงาน
  • การเรียกใช้การทดสอบการทำงาน
  • การเรียกใช้การตรวจสอบก่อนส่งของ TF บางส่วนในเครื่อง

เพิ่มการทดสอบหน่วย

ในโครงการโอเพนซอร์ส Android (AOSP) ให้เพิ่มคลาสการทดสอบหน่วยใน tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java

สำคัญ: การเพิ่มคลาสการทดสอบหน่วยใหม่ไปยังตำแหน่งเหล่านี้จะทําให้ระบบเรียกใช้คลาสเหล่านั้นโดยอัตโนมัติใน Presubmit โดยไม่ต้องตั้งค่าเพิ่มเติม

เรียกใช้การทดสอบหน่วย

การทดสอบหน่วยและการทดสอบการทำงานทั้งหมดของ AOSP สำหรับ Trade Federation อยู่ในโปรเจ็กต์ tools/tradefederation/core/tests

หากต้องการเรียกใช้ Unit Test แต่ละรายการใน Eclipse ให้คลิกขวาที่การทดสอบ แล้วเลือกเรียกใช้เป็น > JUnit หากต้องการเรียกใช้ Unit Test ทั้งหมด ให้เรียกใช้ชุด com.android.tradefed.UnitTests

คุณยังเริ่มการทดสอบหน่วยจากบรรทัดคำสั่งในซอร์สโค้ด Tradefed tree ได้หลังจากสร้างแล้ว ดังนี้ tools/tradefederation/core/javatests/run_tradefed_tests.sh

การทดสอบหน่วยสามารถดำเนินการแบบสแตนด์อโลนได้ แต่การทดสอบฟังก์ชันควรดำเนินการโดยใช้ Trade Federation เอง ซึ่งต้องใช้อุปกรณ์ Android การทดสอบฟังก์ชันการทำงานทั้งหมดควรเป็นไปตามรูปแบบการตั้งชื่อ *FuncTest

ตรวจสอบผลการทดสอบหน่วย

เมื่อเรียกใช้ run_tradefed_tests.sh การทดสอบหน่วยจะใช้ทุกส่วนของ ชุดทดสอบ รวมถึงเงื่อนไขข้อผิดพลาดบางอย่าง ซึ่งจะพิมพ์เอาต์พุตแบบละเอียด ไปยังคอนโซล รวมถึงสแต็กเทรซ

สรุปผลลัพธ์สุดท้ายจะระบุว่าเกิดข้อผิดพลาดหรือไม่

ตัวอย่างสรุปสุดท้ายในคอนโซล

12:55:02 ========== Result Summary ==========
Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]

เราดูแลให้การทดสอบทั้งหมดผ่าน ดังนั้นหากการเปลี่ยนแปลงในเครื่องของคุณไม่ผ่านการทดสอบ โปรดตรวจสอบว่าได้แก้ไขการทดสอบแล้ว

เพิ่มการทดสอบการทำงาน

  • หากการทดสอบฟังก์ชันเกี่ยวข้องกับอุปกรณ์ (ใช้ ITestDevice API ใดก็ได้) คำจำกัดความของชุดทดสอบจะอยู่ใน com.android.tradefed.DeviceFuncTests มิเช่นนั้น คำจำกัดความของชุดจะอยู่ใน com.android.tradefed.FuncTests

  • หากวิธีการทดสอบของคุณควรอยู่ในคลาสย่อยของชุดทดสอบที่มีอยู่ ให้เพิ่มวิธีการทดสอบไว้ที่นั่น ไม่เช่นนั้น คุณสามารถเพิ่มคลาสใหม่ลงในชุดโปรแกรมที่เกี่ยวข้องได้

  • ไม่ว่าจะในกรณีใด การเพิ่มการทดสอบลงในชุดทดสอบจะทำให้ระบบเรียกใช้การทดสอบโดยอัตโนมัติ ในไปป์ไลน์ CI พร้อมกับการทดสอบฟังก์ชันอื่นๆ

เรียกใช้การทดสอบฟังก์ชันการทำงาน

วิธีเรียกใช้การทดสอบการทำงานจาก Eclipse

  1. ตรวจสอบว่าอุปกรณ์เชื่อมต่อกับโฮสต์และว่า adb และหากจำเป็น fastboot อยู่ใน PATH ของ Eclipse วิธีที่ง่ายที่สุดคือการเปิดตัว Eclipse จากการตั้งค่าเชลล์ที่มี PATH ที่เหมาะสม
  2. สร้างแอปพลิเคชัน Java เรียกใช้การกำหนดค่าผ่านเรียกใช้ > เรียกใช้ การกำหนดค่า
  3. ตั้งค่าโปรเจ็กต์เป็น tradefed-tests และตั้งค่าคลาสหลักเป็น com.android.tradefed.command.CommandRunner
  4. เรียกใช้ m tradefed-all
  5. ระบุอาร์กิวเมนต์บรรทัดคำสั่งต่อไปนี้ในแท็บอาร์กิวเมนต์ host --class <full path of test class to run>
  6. คลิกเรียกใช้

หากต้องการเรียกใช้การทดสอบฟังก์ชันการทำงานภายนอก Eclipse

  1. สร้างสหพันธ์การค้า
  2. เชื่อมต่ออุปกรณ์ Android กับโฮสต์
  3. เรียกใช้tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
  4. (ไม่บังคับ) เลือกอุปกรณ์โดยต่อท้าย --serial <serial no> ตามที่ปรากฏในเอาต์พุตของ adb devices

เรียกใช้การทดสอบก่อนส่งของ TF กับการเปลี่ยนแปลงในเครื่อง

หากต้องการเรียกใช้ในลักษณะเดียวกับ Presubmit ของ TF ให้ใช้คำสั่งต่อไปนี้

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

การดำเนินการนี้จะเรียกใช้การทดสอบก่อนส่งทั้งหมดของ TF กับ TF ที่สร้างขึ้นในเครื่องเพื่อช่วยคุณตรวจสอบว่าการเปลี่ยนแปลงของคุณไม่ได้ทำให้การทดสอบใดๆ ล้มเหลว

การทดสอบก่อนส่งของ TF เป็นซูเปอร์เซ็ตของการทดสอบหน่วยด้านบน แต่จะใช้เวลานานกว่าในการเรียกใช้ ดังนั้นเราขอแนะนำให้เรียกใช้การทดสอบหน่วยระหว่างการพัฒนาเพื่อการตรวจสอบที่รวดเร็วขึ้น และเรียกใช้การทดสอบก่อนส่งก่อนอัปโหลด CL