ส่วนนี้อธิบายวิธีเรียกใช้และมีส่วนร่วมในการทดสอบ Trade Federation หลังจากทำการเปลี่ยนแปลงโปรเจ็กต์ ซึ่งรวมถึงข้อมูลต่อไปนี้
- ตำแหน่งที่จะเพิ่มคลาสการทดสอบหน่วยใหม่
- การเรียกใช้การทดสอบหน่วยใน Eclipse และภายนอก Eclipse IDE
- ตำแหน่งที่ควรเพิ่มการทดสอบการทำงาน
- การเรียกใช้การทดสอบการทำงาน
- การเรียกใช้การตรวจสอบก่อนส่งของ TF บางส่วนในเครื่อง
เพิ่มการทดสอบหน่วย
ในโครงการโอเพนซอร์ส Android (AOSP) ให้เพิ่มคลาสการทดสอบหน่วยใน tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java
สำคัญ: การเพิ่มคลาสการทดสอบหน่วยใหม่ไปยังตำแหน่งเหล่านี้จะทําให้ระบบเรียกใช้คลาสเหล่านั้นโดยอัตโนมัติใน Presubmit โดยไม่ต้องตั้งค่าเพิ่มเติม
เรียกใช้การทดสอบหน่วย
การทดสอบหน่วยและการทดสอบการทำงานทั้งหมดของ AOSP สำหรับ Trade Federation อยู่ในโปรเจ็กต์
tools/tradefederation/core/tests
หากต้องการเรียกใช้ Unit Test แต่ละรายการใน Eclipse ให้คลิกขวาที่การทดสอบ แล้วเลือกเรียกใช้เป็น > JUnit หากต้องการเรียกใช้ Unit Test ทั้งหมด ให้เรียกใช้ชุด com.android.tradefed.UnitTests
คุณยังเริ่มการทดสอบหน่วยจากบรรทัดคำสั่งในซอร์สโค้ด Tradefed
tree ได้หลังจากสร้างแล้ว ดังนี้
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 กับการเปลี่ยนแปลงในเครื่อง
หากต้องการเรียกใช้ในลักษณะเดียวกับ Presubmit ของ TF ให้ใช้คำสั่งต่อไปนี้
tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh
การดำเนินการนี้จะเรียกใช้การทดสอบก่อนส่งทั้งหมดของ TF กับ TF ที่สร้างขึ้นในเครื่องเพื่อช่วยคุณตรวจสอบว่าการเปลี่ยนแปลงของคุณไม่ได้ทำให้การทดสอบใดๆ ล้มเหลว
การทดสอบก่อนส่งของ TF เป็นซูเปอร์เซ็ตของการทดสอบหน่วยด้านบน แต่จะใช้เวลานานกว่าในการเรียกใช้ ดังนั้นเราขอแนะนำให้เรียกใช้การทดสอบหน่วยระหว่างการพัฒนาเพื่อการตรวจสอบที่รวดเร็วขึ้น และเรียกใช้การทดสอบก่อนส่งก่อนอัปโหลด CL