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

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

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

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

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

สำคัญ: การเพิ่มชั้นเรียน ยูนิตเทสต์ ใหม่ในสถานที่เหล่านี้จะส่งผลให้ โดยอัตโนมัติในการส่งล่วงหน้าโดยไม่ต้องตั้งค่าเพิ่มเติม

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

การทดสอบหน่วย AOSP และการทดสอบการทำงานทั้งหมดสำหรับสหพันธ์การค้าอยู่ใน เวลา tools/tradefederation/core/tests

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

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

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

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

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

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

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

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 วิธีที่ง่ายที่สุดในการดำเนินการดังกล่าวคือการเปิดตัว สุริยุปราคาจากการตั้งค่า Shell ที่มี 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 เป็นชุดการทดสอบระดับพิเศษของหน่วยข้างต้น แต่ช้ากว่า ให้เรียกใช้ ดังนั้นจึงขอแนะนำให้เรียกใช้การทดสอบ 1 หน่วย ระหว่างการพัฒนาสำหรับ ตรวจสอบได้เร็วขึ้นและเรียกใช้การส่งล่วงหน้าก่อนอัปโหลด CL