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

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

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

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

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

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

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

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

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

นอกจากนี้ คุณยังเริ่มการทดสอบยูนิตจากบรรทัดคำสั่งในทรีแหล่งที่มาของ Tradefed ได้หลังจากสร้าง ดังนี้ 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 ก่อนส่งกับการเปลี่ยนแปลงในเครื่อง

หากต้องการเรียกใช้ในลักษณะที่คล้ายกับ TF ก่อนส่ง ให้ใช้คำสั่งนี้

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

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

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