ตั้งค่า Eclipse

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

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

หากจำเป็น คุณสามารถดาวน์โหลด Eclipse IDE สำหรับนักพัฒนา Java ได้จาก 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 ด้วย ให้นำเข้า

    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

  1. ไปที่หน้าต่าง > ค่ากำหนด > Java > รูปแบบโค้ด
  2. ในส่วนตัวจัดรูปแบบ ให้นำเข้าไฟล์ android-formatting.xml
  3. ในส่วนจัดระเบียบ > การนำเข้า ให้นำเข้าไฟล์ android.importorder

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

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

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

ตรวจสอบรูปแบบโค้ด

เมื่อส่งรายการการเปลี่ยนแปลง ระบบจะเรียกใช้ 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 บรรทัดคำสั่งจากระยะไกล

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

ดีบักเกอร์จะแนบไปกับกระบวนการ 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 run

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

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

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