ทำตามขั้นตอนต่อไปนี้เพื่อตั้งค่า Tradefed โดยใช้ Eclipse
สร้างพื้นที่ทำงานแยกต่างหากเพื่อพัฒนา Trade Federation และอย่าใช้พื้นที่ทำงานที่ใช้สำหรับการพัฒนาอุปกรณ์ Android ซ้ำ
หากจำเป็น คุณสามารถดาวน์โหลด Eclipse IDE สำหรับนักพัฒนา Java ได้จาก eclipse.org/downloads
สร้างโปรเจ็กต์
- เรียกใช้ make จากบรรทัดคำสั่ง 1 ครั้ง ซึ่งจะสร้างไลบรารีภายนอก ที่โปรเจ็กต์ด้านล่างนี้ต้องใช้
- ตั้งค่าตัวแปร classpath TRADEFED_ROOT ใน
Window > Preferences > Java > Build Path> Classpath Variables
และชี้ไปยังรูทของแหล่งที่มาของ Tradefed - ตั้งค่าตัวแปรเส้นทาง TRADEFED_ROOT ใน
Window > Preferences > General > Workspace > Linked Resources
และชี้ไปยังรูทของแหล่งที่มาของ Tradefed ใช้
File > Import...-> General > Existing Projects into workspace"
วิซาร์ดเพื่อนำโปรเจ็กต์ Java โอเพนซอร์สเหล่านี้มาไว้ภายใต้เส้นทางต่อไปนี้prebuilts/misc/common/ddmlib\* tools/loganalysis tools/loganalysis/tests tools/tradefederation/core tools/tradefederation/core/tests tools/tradefederation/contrib tools/tradefederation/core/remote platform_testing/libraries/health/runners/longevity/host platform_testing/libraries/annotations platform_testing/libraries/health/composers/host
ไม่บังคับ: หากต้องการดู
ddmlib
ซอร์สโค้ด ให้แนบซอร์สโค้ด จากสาขาเครื่องมือที่ไม่ได้รวมกลุ่ม เช่น /platform/tools/base/tools_r22/ddmlib/src/main/java/com/android/ddmlib/IDevice.javaไม่บังคับ: หากต้องการโหลดโปรเจ็กต์ชุดทดสอบ CTS ด้วย ให้นำเข้า
test/suite_harness/common/util test/suite_harness/common/host-side/util test/suite_harness/common/host-side/tradefed
จัดรูปแบบอัตโนมัติ
หมายเหตุ: ไฟล์ที่จำเป็นจะอยู่ใน development/ide/eclipse
ในโครงสร้างแหล่งที่มาของแพลตฟอร์มแบบเต็ม
ดังนั้นคุณจะต้องตรวจสอบสาขาแพลตฟอร์ม เช่น
android-latest-release
เพื่อรับไฟล์ต่อไปนี้
/development/android16-release/ide/eclipse/
ใช้ไฟล์ค่ากำหนดใน Eclipse เพื่อตั้งค่าตัวจัดรูปแบบเป็น รูปแบบ Android โดยอัตโนมัติ วิธีดำเนินการนี้ใน Studio
- ไปที่หน้าต่าง > ค่ากำหนด > Java > รูปแบบโค้ด
- ในส่วนตัวจัดรูปแบบ ให้นำเข้าไฟล์
android-formatting.xml
- ในส่วนจัดระเบียบ > การนำเข้า ให้นำเข้าไฟล์
android.importorder
นำช่องว่างต่อท้ายออก
หากต้องการบังคับให้ Eclipse นำช่องว่างต่อท้ายทั้งหมดออก ให้ทำดังนี้
- ไปที่ Window > Preferences -> Java -> Editor -> Save Actions
- จากนั้นไปที่การดำเนินการเพิ่มเติม -> กำหนดค่า -> โค้ด -> แท็บการจัดระเบียบ -> ตัวจัดรูปแบบ
- เลือกนำช่องว่างท้ายออก
- คลิกใช้และปิด
ตรวจสอบรูปแบบโค้ด
เมื่อส่งรายการการเปลี่ยนแปลง ระบบจะเรียกใช้ Hook ก่อนอัปโหลดอัตโนมัติเพื่อตรวจสอบรูปแบบโค้ดของคุณ
google-java-format
ซึ่งจะช่วยจัดรูปแบบโค้ดให้เป็นไปตามมาตรฐานทั่วไป
แก้ไขข้อบกพร่องของ Eclipse
หากต้องการเรียกใช้โค้ด TF ผ่านดีบักเกอร์ใน Eclipse ขอแนะนำให้คุณ สร้างการทดสอบหน่วยสำหรับโค้ดที่เป็นปัญหาเสียก่อน เนื่องจากวิธีนี้จะเป็นวิธีที่ง่ายที่สุด และเร็วที่สุดในการใช้ฟังก์ชันการทำงาน
หากต้องการแก้ไขข้อบกพร่องของ Unit Test ของ TF ให้คลิกขวาที่ Unit Test แล้วเลือกแก้ไขข้อบกพร่องเป็น > JUnit test
หากต้องการแก้ไขข้อบกพร่องของการทดสอบฟังก์ชันการทํางานของ TF ให้ทําตามวิธีการในส่วนก่อนหน้า สําหรับการเรียกใช้การทดสอบฟังก์ชันการทํางาน แต่ใช้เมนูเรียกใช้ > การกําหนดค่าการแก้ไขข้อบกพร่อง
หากต้องการแก้ไขข้อบกพร่องของโปรแกรม TF เอง เมื่อเรียกใช้การกำหนดค่าใดๆ ให้ทำตาม
วิธีการในส่วนก่อนหน้าสำหรับการเรียกใช้การทดสอบการทำงาน แต่ระบุ
อาร์กิวเมนต์บรรทัดคำสั่งสำหรับการกำหนดค่าที่คุณต้องการเรียกใช้ในขั้นตอนที่ 4 ดังนั้น
หากต้องการแก้ไขข้อบกพร่องในการกำหนดค่า "เครื่องมือ" ให้ไปที่เมนูเรียกใช้ > กำหนดค่าการแก้ไขข้อบกพร่อง
และตั้งค่าแท็บอาร์กิวเมนต์ในการกำหนดค่าการแก้ไขข้อบกพร่องของ Eclipse เป็น
-- package <package to run> instrument
แก้ไขข้อบกพร่องจากระยะไกลด้วย Eclipse
ทำตามขั้นตอนต่อไปนี้เพื่อแก้ไขข้อบกพร่องเซสชัน Tradefed ที่เริ่มจาก
tradefed.sh
บรรทัดคำสั่งจากระยะไกล
- เริ่ม tradefed.sh ด้วยแฟล็กดีบัก:
TF_DEBUG=1 tradefed.sh
- รอจนกว่าคุณจะเห็นข้อความแจ้งนี้จาก JVM:
Listening for transport dt_socket at address: 10088
ซึ่งหมายความว่า JVM กำลังรอดีบักเกอร์ให้ แนบที่พอร์ต10088
- แนบด้วยการแก้ไขข้อบกพร่องระยะไกลของ Eclipse จากเมนูหลัก: เลือกเรียกใช้ > กำหนดค่าการแก้ไขข้อบกพร่อง...
- ในกล่องโต้ตอบป๊อปอัป ให้เลือกแอปพลิเคชัน Java ระยะไกลจากเมนูด้านซ้าย
- คลิกไอคอนการกำหนดค่าการเปิดตัวใหม่ในแถบการดำเนินการ
- ตั้งชื่อการกำหนดค่าตามต้องการ แล้วเลือก tradefederation เป็นโปรเจ็กต์
- ป้อนข้อมูลพอร์ตโดยใช้ที่อยู่ที่ระบุก่อนหน้านี้
- เปลี่ยนไปที่แท็บแหล่งที่มา แล้วเพิ่มโปรเจ็กต์ tradefederation และ google-tradefed ลงในเส้นทางการค้นหาแหล่งที่มา
- คลิกแก้ไขข้อบกพร่องเพื่อเริ่มเซสชันการแก้ไขข้อบกพร่อง
ดีบักเกอร์จะแนบไปกับกระบวนการ JVM ที่กำลังฟังอยู่ และเทอร์มินัลที่เรียกใช้
tradefed.sh
จะแสดงพรอมต์ tf>
หากต้องการดูโค้ดในโหมดแก้ไขข้อบกพร่อง ให้ตั้งค่าจุดพักใน Eclipse และเรียกใช้
คำสั่ง Tradefed (เช่น run <test>
) ในเทอร์มินัล หากต้องการแก้ไขข้อบกพร่องใดๆ
ระหว่างการเริ่มต้น TF คุณสามารถตั้งค่าเบรกพอยต์ก่อน แล้วจึงแนบดีบักเกอร์ Eclipse
เคล็ดลับ: หากต้องการใช้พอร์ตอื่น ให้เพิ่ม TF_DEBUG_PORT=nnn
ไปยังคำสั่งในขั้นตอนที่ 1
ด้านบน คุณยังใช้การตั้งค่านี้ในสภาพแวดล้อมการใช้งานจริงได้ด้วย หากมีข้อบกพร่องที่ทำให้แอปค้างอย่างลึกลับให้ตรวจสอบ โดยเปลี่ยน suspend=y
เป็น suspend=n
ใน tradefed.sh
และเริ่มด้วยแฟล็กดีบัก JVM จะไม่รอให้โปรแกรมแก้ไขข้อบกพร่องแนบข้อมูล แต่คุณสามารถทำได้ทุกเมื่อตราบใดที่กระบวนการยังทำงานอยู่
แก้ไขข้อบกพร่องจากระยะไกลโดยใช้ JDB
หากต้องการใช้ Java Debugger JDB ให้ทำตามขั้นตอนที่คล้ายกับขั้นตอนสำหรับ Eclipse ดังนี้
- เริ่ม
tradefed.sh
ด้วยแฟล็กการแก้ไขข้อบกพร่อง:TF_DEBUG=1 tradefed.sh
- รอจนกว่าจะเห็นข้อความแจ้งจาก JVM:
Listening for transport dt_socket at address: 10088
เชื่อมต่อ
jdb
เช่น จาก croot runjdb -attach 10088 \ -sourcepath tools/tradefederation/core/src:vendor/google_tradefederation/core/src
รอการเชื่อมต่อและเริ่มแก้ไขข้อบกพร่องได้เลย เรียกใช้
man jdb
เพื่อขอความช่วยเหลือเพิ่มเติม
ตรวจสอบการครอบคลุมของโค้ด
- ติดตั้งปลั๊กอิน Eclemma
- ไปที่ความช่วยเหลือ > ติดตั้งซอฟต์แวร์ใหม่ แล้วชี้ตัวช่วยสร้างไปที่ http://update.eclemma.org/
- เมื่อติดตั้งแล้ว ให้เลือกตัวเลือกการทดสอบ Coverage As > JUnit เพื่อเรียกใช้ การครอบคลุมโค้ด