設置 Eclipse

按照以下步驟使用 Eclipse 設置 Tradefed。

創建一個單獨的工作區來開發 Trade Federation,不要重複使用已經用於 Android 設備開發的工作區。

如果需要,您可以從以下位置下載適用於 Java 開發人員的 Eclipse IDEeclipse.org/downloads

創建項目

  1. 從命令行運行一次。這將構建由以下項目依賴的外部庫。
  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中。所以你需要檢查一個平台分支,比如master來獲取這些文件: /development/master/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

如果您想通過 Eclipse 中的調試器運行 TF 代碼,建議您首先為有問題的代碼創建一個單元測試,因為這將是最簡單和最快的方法來練習功能。

要調試 TF 單元測試,只需右鍵單擊它並選擇Debug As > JUnit test

要調試 TF 功能測試,請按照上一節中的說明運行功能測試,但使用運行 > 調試配置菜單。

要調試 TF 程序本身,在運行任何配置時,請按照上一節中的說明運行功能測試,但為您希望在步驟 4 中運行的配置提供命令行參數。因此,要調試“儀器”配置,轉到Run > Debug 配置菜單並將 Eclipse 調試配置中的Arguments選項卡設置為 --package -- package <package to run> instrument

使用 Eclipse 進行遠程調試

按照以下步驟遠程調試從tradefed.sh命令行啟動的 tradefed 會話:

  1. 使用調試標誌啟動 tradefed.sh:TF_DEBUG=1 TF_DEBUG=1 tradefed.sh
  2. 等到你從 JVM 看到這個提示: Listening for transport dt_socket at address: 10088這意味著 JVM 正在等待調試器在端口10088附加。
  3. 從主菜單附加 Eclipse 的遠程調試:選擇Run > Debug Configurations...。
  4. 在彈出對話框中,從左側菜單中選擇遠程 Java 應用程序
  5. 單擊操作欄上的新建啟動配置圖標。
  6. 根據需要命名配置並選擇tradefederation作為項目。
  7. 使用前面提供的地址填充端口。
  8. 切換到Source選項卡並將項目tradefederationgoogle-tradefed 添加Source Lookup Path
  9. 單擊調試以啟動調試會話。

調試器附加到正在監聽的 JVM 進程,運行tradefed.sh的終端顯示tf>提示符。

要在調試模式下單步執行您的代碼,請在 Eclipse 中設置一個斷點並在終端中調用您的 Tradefed 命令(即run <test> )。要在 TF 啟動期間調試任何內容,您可以先設置斷點,然後附加 Eclipse 調試器。

提示:要使用備用端口,請將TF_DEBUG_PORT=nnn添加到上述步驟 1 中的命令中。如果您有神秘的掛起錯誤要調查,您甚至可以在生產環境中使用它:在tradefed.sh suspend=y更改為suspend=n並從調試標誌開始。 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. 安裝後,選擇Coverage As > JUnit測試選項進行代碼覆蓋運行。