ทำตามขั้นตอนต่อไปนี้เพื่อตั้งค่า Tradefed โดยใช้ Eclipse
สร้างพื้นที่ทำงานแยกต่างหากเพื่อพัฒนา Trade Federation โดยอย่าใช้พื้นที่ทำงานที่ใช้สำหรับการพัฒนาอุปกรณ์ Android ซ้ำ
หากจำเป็น คุณสามารถดาวน์โหลด Eclipse IDE for Java developers ได้จาก: 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 harness ด้วย ให้นำเข้า
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/android17-release/ide/eclipse/
ใช้ไฟล์ค่ากำหนดใน Eclipse เพื่อตั้งค่าตัวจัดรูปแบบเป็นคู่มือสไตล์ Android โดยอัตโนมัติ วิธีดำเนินการใน Studio
- ไปที่ Window > Preferences > Java > Code Style
- ในส่วน Formatter ให้นำเข้าไฟล์
android-formatting.xml - ในส่วน Organize > Imports ให้นำเข้าไฟล์
android.importorder
นำช่องว่างต่อท้ายออก
หากต้องการบังคับให้ Eclipse นำช่องว่างต่อท้ายทั้งหมดออก ให้ทำดังนี้
- ไปที่ Window > Preferences -> Java -> Editor -> Save Actions
- จากนั้นไปที่ Additional Actions -> Configure -> Code > Organizing tab -> Formatter
- เลือกนำช่องว่างต่อท้ายออก
- คลิกใช้และปิด
ตรวจสอบสไตล์โค้ด
เมื่อส่งรายการเปลี่ยนแปลง ระบบจะเรียกใช้ฮุกก่อนอัปโหลดอัตโนมัติเพื่อตรวจสอบรูปแบบโค้ด google-java-format
ซึ่งจะช่วยจัดรูปแบบโค้ดให้เป็นไปตามมาตรฐานทั่วไป
แก้ไขข้อบกพร่องของ Eclipse
หากต้องการเรียกใช้โค้ด TF ผ่านโปรแกรมแก้ไขข้อบกพร่องใน Eclipse เราขอแนะนำให้คุณสร้าง Unit Test สำหรับโค้ดที่เป็นปัญหาเสียก่อน เนื่องจากวิธีนี้เป็นวิธีที่ง่ายและรวดเร็วที่สุดในการใช้ฟังก์ชันการทำงาน
หากต้องการแก้ไขข้อบกพร่องของ Unit Test ของ TF เพียงคลิกขวาที่ Unit Test แล้วเลือก Debug As > JUnit test
หากต้องการแก้ไขข้อบกพร่องของ Functional Test ของ TF ให้ทำตามวิธีการในส่วนก่อนหน้าเพื่อเรียกใช้ Functional Test แต่ใช้เมนู Run > Debug configurations
หากต้องการแก้ไขข้อบกพร่องของโปรแกรม TF เอง เมื่อเรียกใช้การกำหนดค่าใดก็ตาม ให้ทำตามวิธีการในส่วนก่อนหน้าเพื่อเรียกใช้ Functional Test แต่ระบุอาร์กิวเมนต์บรรทัดคำสั่งสำหรับการกำหนดค่าที่ต้องการเรียกใช้ในขั้นตอนที่ 4 ดังนั้น
หากต้องการแก้ไขข้อบกพร่องของการกำหนดค่า "instrument" ให้ไปที่เมนู Run > Debug configuration
แล้วตั้งค่าแท็บ Arguments ในการกำหนดค่าการแก้ไขข้อบกพร่องของ 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 จากเมนูหลัก โดยเลือก Run > Debug Configurations...
- ในกล่องโต้ตอบป๊อปอัป ให้เลือก Remote Java Application จากเมนูด้านซ้าย
- คลิกไอคอน New launch configuration ในแถบการดำเนินการ
- ตั้งชื่อการกำหนดค่าตามต้องการ แล้วเลือก tradefederation เป็นโปรเจ็กต์
- ป้อนพอร์ตโดยใช้ที่อยู่ที่ระบุไว้ก่อนหน้านี้
- เปลี่ยนไปที่แท็บ Source แล้วเพิ่มโปรเจ็กต์ tradefederation และ google-tradefed ลงใน Source Lookup Path
- คลิก Debug เพื่อเริ่มเซสชันการแก้ไขข้อบกพร่อง
โปรแกรมแก้ไขข้อบกพร่องจะแนบข้อมูลกับกระบวนการ 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 ให้เรียกใช้jdb -attach 10088 \ -sourcepath tools/tradefederation/core/src:vendor/google_tradefederation/core/srcรอการเชื่อมต่อแล้วเริ่มแก้ไขข้อบกพร่องได้เลย เรียกใช้
man jdbเพื่อดูความช่วยเหลือเพิ่มเติม
ตรวจสอบการครอบคลุมของโค้ด
- ติดตั้งปลั๊กอิน Eclemma
- ไปที่ Help > Install New Software แล้วชี้วิซาร์ดไปที่ http://update.eclemma.org/
- เมื่อติดตั้งแล้ว ให้เลือกตัวเลือกการทดสอบ Coverage As > JUnit เพื่อเรียกใช้การครอบคลุมของโค้ด