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

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

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

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

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

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

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

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

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

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

การทดสอบหน่วยสามารถดำเนินการแบบสแตนด์อโลนได้ แต่การทดสอบการทำงานควรดำเนินการโดยใช้สหพันธ์การค้าเอง พวกเขาต้องการอุปกรณ์ 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. สร้างแอปพลิเคชันจาวา รันการกำหนดค่าผ่าน Run > Run configurations
  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