ทำตามขั้นตอนเหล่านี้เพื่อตั้งค่า Tradefed โดยใช้ Eclipse
สร้างพื้นที่ทำงานแยกต่างหากเพื่อพัฒนา Trade Federation อย่านำพื้นที่ทำงานที่ใช้แล้วสำหรับการพัฒนาอุปกรณ์ Android มาใช้ซ้ำ
หากจำเป็น คุณสามารถดาวน์โหลด Eclipse IDE สำหรับนักพัฒนา Java ได้จาก: eclipse.org/downloads
สร้างโครงการ
- เรียกใช้ make หนึ่งครั้งจากบรรทัดคำสั่ง สิ่งนี้จะสร้างห้องสมุดภายนอกขึ้นอยู่กับโครงการด้านล่าง
- ตั้งค่าตัวแปรคลาสพาธ TRADEFED_ROOT ใน
Window > Preferences > Java > Build Path> Classpath Variables
และชี้ไปที่รูทต้นทางที่แลกเปลี่ยนของคุณ - ตั้งค่าตัวแปรเส้นทาง TRADEFED_ROOT ใน
Window > Preferences > General > Workspace > Linked Resources
และชี้ไปที่รูทต้นทางที่แลกเปลี่ยนของคุณ ใช้
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
ในแผนผังซอร์สแพลตฟอร์มแบบเต็ม ดังนั้น คุณจะต้องตรวจสอบสาขาแพลตฟอร์ม เช่น main
เพื่อรับไฟล์เหล่านี้: /development/main/ide/eclipse/
ใช้ไฟล์การกำหนดค่าตามความชอบใน Eclipse เพื่อตั้งค่าฟอร์แมตเตอร์ตามคำแนะนำสไตล์ Android โดยอัตโนมัติ หากต้องการทำสิ่งนี้ในสตูดิโอ:
- ไปที่ Window > การตั้งค่า > Java > ลักษณะโค้ด
- ภายใต้ Formatter ให้นำเข้าไฟล์
android-formatting.xml
- ภายใต้ Organize > Imports นำเข้าไฟล์
android.importorder
ลบช่องว่างต่อท้าย
หากต้องการบังคับให้ Eclipse ลบช่องว่างต่อท้ายทั้งหมด:
- ไปที่ Window > Preferences -> Java -> Editor -> Save Actions
- จากนั้น การดำเนินการเพิ่มเติม -> กำหนดค่า -> รหัส > แท็บการจัดระเบียบ -> ฟอร์แมตเตอร์
- ทำเครื่องหมาย ลบช่องว่างต่อท้าย
- คลิกนำ ไปใช้และปิด
ตรวจสอบรูปแบบรหัส
เมื่อส่งรายการเปลี่ยนแปลง hook การอัปโหลดล่วงหน้าอัตโนมัติจะทำงานเพื่อตรวจสอบรูปแบบโค้ดของคุณ: google-java-format
ซึ่งจะช่วยจัดรูปแบบโค้ดของคุณให้เป็นมาตรฐานทั่วไป
ดีบักคราส
หากคุณต้องการรันโค้ด TF ผ่านดีบักเกอร์ใน Eclipse ขอแนะนำให้คุณสร้างการทดสอบหน่วยสำหรับโค้ดที่เป็นปัญหาก่อน เนื่องจากนี่จะเป็นวิธีที่ง่ายและรวดเร็วที่สุดในการฝึกฟังก์ชันการทำงาน
หากต้องการดีบักการทดสอบหน่วย TF เพียงคลิกขวาที่มันแล้วเลือก Debug As > JUnit test
หากต้องการดีบักการทดสอบฟังก์ชัน TF ให้ทำตามคำแนะนำในส่วนก่อนหน้าเพื่อรันการทดสอบฟังก์ชัน แต่ใช้เมนู เรียกใช้ > การกำหนดค่าดีบัก
หากต้องการดีบักโปรแกรม TF เอง เมื่อรันการกำหนดค่าใดๆ ให้ทำตามคำแนะนำในส่วนก่อนหน้าสำหรับการรันการทดสอบการทำงาน แต่ระบุอาร์กิวเมนต์บรรทัดคำสั่งสำหรับการกำหนดค่าที่คุณต้องการเรียกใช้ในขั้นตอนที่ 4 ดังนั้นในการดีบักการกำหนดค่า 'เครื่องมือ' ไปที่เมนู Run > Debug configuration และตั้งค่าแท็บ Arguments ในการกำหนดค่า Eclipse debug เป็น -- 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 จากเมนูหลัก: เลือก รัน > การกำหนดค่าดีบัก...
- ในกล่องโต้ตอบป๊อปอัป ให้เลือก Remote Java Application จากเมนูด้านซ้าย
- คลิกไอคอน การกำหนดค่าการเปิดตัวใหม่ บนแถบการดำเนินการ
- ตั้งชื่อการกำหนดค่าตามที่คุณต้องการ และเลือก สหพันธ์การค้า เป็นโปรเจ็กต์
- เติมพอร์ตโดยใช้ที่อยู่ที่ให้ไว้ก่อนหน้านี้
- สลับไปที่แท็บ แหล่งที่มา และเพิ่มโครงการ สหพันธ์การค้า และ การค้าของ Google ไปยัง เส้นทางการค้นหาแหล่งที่มา
- คลิก ดีบัก เพื่อเริ่มเซสชันการดีบัก
ดีบักเกอร์เชื่อมต่อกับกระบวนการ Listen JVM และเทอร์มินัลที่รัน tradefed.sh
จะแสดงพร้อมท์ tf>
หากต้องการก้าวผ่านโค้ดของคุณในโหมดดีบัก ให้ตั้งค่าจุดพักใน Eclipse และเรียกใช้คำสั่ง Tradefed ของคุณ (เช่น run <test>
) ในเทอร์มินัล หากต้องการดีบักสิ่งใดๆ ก็ตามระหว่างการเริ่มต้น TF คุณสามารถตั้งค่าจุดพักก่อน จากนั้นจึงแนบดีบักเกอร์ Eclipse
เคล็ดลับ: หากต้องการใช้พอร์ตอื่น ให้เพิ่ม TF_DEBUG_PORT=nnn
ให้กับคำสั่งในขั้นตอนที่ 1 ด้านบน คุณยังสามารถใช้สิ่งนี้ในสภาพแวดล้อมการใช้งานจริงได้หากคุณมีจุดบกพร่องที่ค้างลึกลับที่ต้องตรวจสอบ: เปลี่ยน suspend=y
เป็น suspend=n
ใน tradefed.sh
และเริ่มต้นด้วยการตั้งค่าสถานะ debug JVM จะไม่รอให้ดีบักเกอร์แนบ แต่คุณสามารถทำได้ตลอดเวลาตราบใดที่กระบวนการยังคงทำงานอยู่
การดีบักแบบรีโมตโดยใช้ JDB
หากต้องการใช้ Java Debugger JDB ให้ทำตามขั้นตอนที่คล้ายกับ Eclipse:
- เริ่ม
tradefed.sh
ด้วยแฟล็กดีบัก:TF_DEBUG=1 tradefed.sh
- รอจนกว่าคุณจะเห็นข้อความแจ้งจาก JVM:
Listening for transport dt_socket at address: 10088
เชื่อมต่อ
jdb
ตัวอย่างเช่นจากการรัน croot:jdb -attach 10088 \ -sourcepath tools/tradefederation/core/src:vendor/google_tradefederation/core/src
รอการเชื่อมต่อและแก้ไขข้อบกพร่องออกไป! เรียกใช้
man jdb
เพื่อขอความช่วยเหลือเพิ่มเติม
ตรวจสอบความครอบคลุมของโค้ด
- ติดตั้ง ปลั๊กอิน Eclemma
- ไปที่ วิธีใช้ > ติดตั้งซอฟต์แวร์ใหม่ และชี้วิซาร์ดไปที่: http://update.eclemma.org/
- เมื่อติดตั้งแล้ว ให้เลือกตัวเลือก ความครอบคลุมเป็น > การทดสอบ JUnit เพื่อดำเนินการรันการครอบคลุมโค้ด