ตั้งค่า Eclipse

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

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

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

สร้างโครงการ

  1. เรียกใช้ make หนึ่งครั้งจากบรรทัดคำสั่ง สิ่งนี้จะสร้างห้องสมุดภายนอกขึ้นอยู่กับโครงการด้านล่าง
  2. ตั้งค่าตัวแปรคลาสพาธ TRADEFED_ROOT ใน Window > Preferences > Java > Build Path> Classpath Variables และชี้ไปที่รูทต้นทางที่แลกเปลี่ยนของคุณ
  3. ตั้งค่าตัวแปรเส้นทาง TRADEFED_ROOT ใน Window > Preferences > General > Workspace > Linked Resources และชี้ไปที่รูทต้นทางที่แลกเปลี่ยนของคุณ
  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 ด้วย ให้นำเข้า:

    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 โดยอัตโนมัติ หากต้องการทำสิ่งนี้ในสตูดิโอ:

  1. ไปที่ Window > การตั้งค่า > Java > ลักษณะโค้ด
  2. ภายใต้ Formatter ให้นำเข้าไฟล์ android-formatting.xml
  3. ภายใต้ Organize > Imports นำเข้าไฟล์ android.importorder

ลบช่องว่างต่อท้าย

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

  1. ไปที่ Window > Preferences -> Java -> Editor -> Save Actions
  2. จากนั้น การดำเนินการเพิ่มเติม -> กำหนดค่า -> รหัส > แท็บการจัดระเบียบ -> ฟอร์แมตเตอร์
  3. ทำเครื่องหมาย ลบช่องว่างต่อท้าย
  4. คลิกนำ ไปใช้และปิด

ตรวจสอบรูปแบบรหัส

เมื่อส่งรายการเปลี่ยนแปลง 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 จากระยะไกล:

  1. เริ่ม tradefed.sh ด้วยแฟล็กดีบัก: TF_DEBUG=1 tradefed.sh
  2. รอจนกว่าคุณจะเห็นพร้อมท์นี้จาก JVM: Listening for transport dt_socket at address: 10088 ซึ่งหมายความว่า JVM กำลังรอให้ดีบักเกอร์แนบที่พอร์ต 10088
  3. แนบกับการดีบักแบบรีโมตของ Eclipse จากเมนูหลัก: เลือก รัน > การกำหนดค่าดีบัก...
  4. ในกล่องโต้ตอบป๊อปอัป ให้เลือก Remote Java Application จากเมนูด้านซ้าย
  5. คลิกไอคอน การกำหนดค่าการเปิดตัวใหม่ บนแถบการดำเนินการ
  6. ตั้งชื่อการกำหนดค่าตามที่คุณต้องการ และเลือก สหพันธ์การค้า เป็นโปรเจ็กต์
  7. เติมพอร์ตโดยใช้ที่อยู่ที่ให้ไว้ก่อนหน้านี้
  8. สลับไปที่แท็บ แหล่งที่มา และเพิ่มโครงการ สหพันธ์การค้า และ การค้าของ Google ไปยัง เส้นทางการค้นหาแหล่งที่มา
  9. คลิก ดีบัก เพื่อเริ่มเซสชันการดีบัก

ดีบักเกอร์เชื่อมต่อกับกระบวนการ 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:

  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. ไปที่ วิธีใช้ > ติดตั้งซอฟต์แวร์ใหม่ และชี้วิซาร์ดไปที่: http://update.eclemma.org/
  3. เมื่อติดตั้งแล้ว ให้เลือกตัวเลือก ความครอบคลุมเป็น > การทดสอบ JUnit เพื่อดำเนินการรันการครอบคลุมโค้ด