ส่วนนี้จะอธิบายวิธีเรียกใช้และมีส่วนร่วมในการทดสอบของ 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
- ตรวจสอบว่าอุปกรณ์เชื่อมต่อกับโฮสต์ และ
adb
และหากจำเป็นfastboot
อยู่ใน PATH ของ Eclipse วิธีที่ง่ายที่สุดคือเปิด Eclipse จากการตั้งค่าเชลล์ที่มี 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 เป็นชุดทดสอบที่ครอบคลุมชุดทดสอบหน่วยข้างต้น แต่การเรียกใช้การทดสอบนี้จะช้ากว่า เราจึงขอแนะนำให้เรียกใช้การทดสอบหน่วยระหว่างการพัฒนาเพื่อให้การตรวจสอบรวดเร็วขึ้น และเรียกใช้การทดสอบก่อนส่งก่อนที่จะอัปโหลด CL