ส่วนนี้จะอธิบายวิธีเรียกใช้และมีส่วนร่วมในการทดสอบของสมาพันธ์การค้า หลังจากทำการเปลี่ยนแปลงในโปรเจ็กต์ ฟีเจอร์เหล่านั้นรวมถึง
- ส่วนที่จะเพิ่มชั้นเรียนการทดสอบ 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
- ตรวจสอบว่าอุปกรณ์เชื่อมต่อกับโฮสต์และ
adb
หากจำเป็นfastboot
อยู่ใน PATH ของ Eclipse วิธีที่ง่ายที่สุดในการดำเนินการดังกล่าวคือการเปิดตัว สุริยุปราคาจากการตั้งค่า Shell ที่มี PATH ที่เหมาะสม - สร้างแอปพลิเคชัน Java เรียกใช้การกำหนดค่าผ่านเรียกใช้ > เรียกใช้ และการกำหนดค่าของคุณ
- ตั้งค่าโปรเจ็กต์เป็น
tradefed-tests
และคลาสหลักเป็นcom.android.tradefed.command.CommandRunner
- เรียกใช้
m tradefed-all
- ระบุอาร์กิวเมนต์บรรทัดคำสั่งต่อไปนี้ในแท็บอาร์กิวเมนต์
host --class <full path of test class to run>
- คลิกเรียกใช้
เพื่อทำการทดสอบการทำงานนอก Eclipse
- สร้างสหพันธ์การค้า
- เชื่อมต่ออุปกรณ์ Android กับโฮสต์
- เรียกใช้
tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
- (ไม่บังคับ) เลือกอุปกรณ์โดยใส่
--serial <serial no>
ต่อท้าย จะปรากฏในเอาต์พุตของadb devices
เรียกใช้การทดสอบการส่ง TF ล่วงหน้าสำหรับการเปลี่ยนแปลงในเครื่อง
หากคุณต้องการเรียกใช้ในลักษณะเดียวกับการส่ง TF ล่วงหน้า ให้ใช้ข้อมูลต่อไปนี้
tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh
วิธีนี้จะทริกเกอร์การทดสอบการส่ง TF ล่วงหน้าทั้งหมดเทียบกับ TF ที่สร้างขึ้นในเครื่องของคุณ ช่วยให้คุณตรวจสอบว่าการเปลี่ยนแปลงของคุณไม่ได้ทำให้การทดสอบเสียหาย
การทดสอบการส่งล่วงหน้าของ TF เป็นชุดการทดสอบระดับพิเศษของหน่วยข้างต้น แต่ช้ากว่า ให้เรียกใช้ ดังนั้นจึงขอแนะนำให้เรียกใช้การทดสอบ 1 หน่วย ระหว่างการพัฒนาสำหรับ ตรวจสอบได้เร็วขึ้นและเรียกใช้การส่งล่วงหน้าก่อนอัปโหลด CL