ตั้งค่า Eclipse

ทำตามขั้นตอนต่อไปนี้เพื่อตั้งค่า Tradefed โดยใช้ Eclipse

สร้างพื้นที่ทำงานแยกต่างหากเพื่อพัฒนา Trade Federation โดยอย่าใช้พื้นที่ทำงานที่ใช้สำหรับการพัฒนาอุปกรณ์ Android ซ้ำ

หากจำเป็น คุณสามารถดาวน์โหลด Eclipse IDE for Java developers ได้จาก: eclipse.org/downloads

สร้างโปรเจ็กต์

  1. เรียกใช้ make จากบรรทัดคำสั่ง 1 ครั้ง ซึ่งจะสร้างไลบรารีภายนอกที่โปรเจ็กต์ด้านล่างนี้ต้องใช้
  2. ตั้งค่าตัวแปร classpath TRADEFED_ROOT ใน Window > Preferences > Java > Build Path> Classpath Variables และชี้ไปยังรากของแหล่งที่มา tradefed
  3. ตั้งค่าตัวแปรเส้นทาง TRADEFED_ROOT ใน Window > Preferences > General > Workspace > Linked Resources และชี้ไปยังรากของแหล่งที่มา tradefed
  4. ใช้วิซาร์ด 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
    
  5. ไม่บังคับ: หากต้องการดูซอร์สโค้ด ddmlib ให้แนบซอร์สโค้ด จากสาขาเครื่องมือที่ไม่ได้รวมไว้ เช่น /platform/tools/base/tools_r22/ddmlib/src/main/java/com/android/ddmlib/IDevice.java

  6. ไม่บังคับ: หากต้องการโหลดโปรเจ็กต์ 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

  1. ไปที่ Window > Preferences > Java > Code Style
  2. ในส่วน Formatter ให้นำเข้าไฟล์ android-formatting.xml
  3. ในส่วน Organize > Imports ให้นำเข้าไฟล์ android.importorder

นำช่องว่างต่อท้ายออก

หากต้องการบังคับให้ Eclipse นำช่องว่างต่อท้ายทั้งหมดออก ให้ทำดังนี้

  1. ไปที่ Window > Preferences -> Java -> Editor -> Save Actions
  2. จากนั้นไปที่ Additional Actions -> Configure -> Code > Organizing tab -> Formatter
  3. เลือกนำช่องว่างต่อท้ายออก
  4. คลิกใช้และปิด

ตรวจสอบสไตล์โค้ด

เมื่อส่งรายการเปลี่ยนแปลง ระบบจะเรียกใช้ฮุกก่อนอัปโหลดอัตโนมัติเพื่อตรวจสอบรูปแบบโค้ด 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

  1. เริ่ม tradefed.sh ด้วยแฟล็กการแก้ไขข้อบกพร่อง TF_DEBUG=1 tradefed.sh
  2. รอจนกว่าจะเห็นข้อความแจ้งนี้จาก JVM: Listening for transport dt_socket at address: 10088 ซึ่งหมายความว่า JVM กำลังรอให้โปรแกรมแก้ไขข้อบกพร่อง แนบข้อมูลที่พอร์ต 10088
  3. แนบข้อมูลด้วยการแก้ไขข้อบกพร่องจากระยะไกลของ Eclipse จากเมนูหลัก โดยเลือก Run > Debug Configurations...
  4. ในกล่องโต้ตอบป๊อปอัป ให้เลือก Remote Java Application จากเมนูด้านซ้าย
  5. คลิกไอคอน New launch configuration ในแถบการดำเนินการ
  6. ตั้งชื่อการกำหนดค่าตามต้องการ แล้วเลือก tradefederation เป็นโปรเจ็กต์
  7. ป้อนพอร์ตโดยใช้ที่อยู่ที่ระบุไว้ก่อนหน้านี้
  8. เปลี่ยนไปที่แท็บ Source แล้วเพิ่มโปรเจ็กต์ tradefederation และ google-tradefed ลงใน Source Lookup Path
  9. คลิก 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

  1. เริ่ม tradefed.sh ด้วยแฟล็กการแก้ไขข้อบกพร่อง TF_DEBUG=1 tradefed.sh
  2. รอจนกว่าจะเห็นข้อความแจ้งจาก JVM: Listening for transport dt_socket at address: 10088
  3. เชื่อมต่อ jdb เช่น จาก croot ให้เรียกใช้

    jdb -attach 10088 \
        -sourcepath tools/tradefederation/core/src:vendor/google_tradefederation/core/src
    
  4. รอการเชื่อมต่อแล้วเริ่มแก้ไขข้อบกพร่องได้เลย เรียกใช้ man jdb เพื่อดูความช่วยเหลือเพิ่มเติม

ตรวจสอบการครอบคลุมของโค้ด

  1. ติดตั้งปลั๊กอิน Eclemma
  2. ไปที่ Help > Install New Software แล้วชี้วิซาร์ดไปที่ http://update.eclemma.org/
  3. เมื่อติดตั้งแล้ว ให้เลือกตัวเลือกการทดสอบ Coverage As > JUnit เพื่อเรียกใช้การครอบคลุมของโค้ด