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