設定 Eclipse

請按照下列步驟,使用 Eclipse 設定 Tradefed。

請建立獨立的工作區來開發 Trade Federation,不要重複使用已用於 Android 裝置開發的工作區。

如有需要,您可以從 eclipse.org/downloads 下載 Eclipse IDE for Java developers

建立專案

  1. 從指令列執行一次 make。這會建構下方專案依附的外部程式庫。
  2. Window > Preferences > Java > Build Path> Classpath Variables 中設定 TRADEFED_ROOT 類路徑變數,並指向您的 tradefed 來源根目錄
  3. Window > Preferences > General > Workspace > Linked Resources 中設定 TRADEFED_ROOT 路徑變數,並指向 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. 依序前往「Window」>「Preferences」>「Java」>「Code Style」
  2. 在「格式化工具」下方,匯入 android-formatting.xml 檔案。
  3. 依序前往「Organize」>「Imports」,然後匯入 android.importorder 檔案。

移除結尾的空白字元

如要強制 Eclipse 移除所有結尾空白字元,請按照下列步驟操作:

  1. 依序前往「Window」>「Preferences」>「Java」>「Editor」>「Save Actions」
  2. 然後依序點選「其他動作」->「設定」->「程式碼」->「整理」分頁標籤 ->「格式化工具」
  3. 勾選「Remove Trailing Whitespace」(移除結尾空白字元)
  4. 按一下「套用並關閉」

檢查程式碼樣式

提交變更清單時,系統會自動執行預先上傳的掛鉤,檢查程式碼格式:google-java-format

這有助於將程式碼格式化為常見標準。

偵錯 Eclipse

如要在 Eclipse 的偵錯工具中執行 TF 程式碼,建議您先為相關程式碼建立單元測試,因為這是最簡單快速的練習功能方式。

如要偵錯 TF 單元測試,只要在測試上按一下滑鼠右鍵,然後選取「Debug As」>「JUnit test」即可。

如要對 TF 函式測試進行偵錯,請按照上一節的函式測試執行操作說明,但使用「Run」>「Debug configurations」選單。

如要偵錯 TF 程式本身,請在執行任何設定時,按照上一節的指示執行功能測試,但在步驟 4 中,請提供要執行的設定的命令列引數。因此,如要偵錯「instrument」設定,請前往「Run」>「Debug configuration」選單,並將 Eclipse 偵錯設定中的「Arguments」分頁設為 -- 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. 切換至「來源」分頁,然後將 tradefederationgoogle-tradefed 專案新增至「來源查詢路徑」
  9. 按一下「Debug」,開始偵錯工作階段。

偵錯工具會附加至接聽 JVM 程序,而執行 tradefed.sh 的終端機則會顯示 tf> 提示。

如要在偵錯模式下逐步檢查程式碼,請在 Eclipse 中設定中斷點,並在終端機中叫用 Tradefed 指令 (即 run <test>)。如要在 TF 啟動期間偵錯任何項目,可以先設定中斷點,然後附加 Eclipse 偵錯工具。

提示:如要使用其他連接埠,請在上述步驟 1 的指令中加入 TF_DEBUG_PORT=nnn。如果遇到難以捉摸的當機錯誤需要調查,您甚至可以在實際工作環境中使用這項功能:將 tradefed.sh 中的 suspend=y 變更為 suspend=n,然後使用偵錯標記啟動。JVM 不會等待偵錯工具附加,但只要程序仍在執行,您隨時都可以附加偵錯工具。

使用 JDB 進行遠端偵錯

如要使用 Java Debugger JDB,請按照類似 Eclipse 的步驟操作:

  1. 使用偵錯標記啟動 tradefed.shTF_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」測試選項,即可執行程式碼涵蓋範圍測試。