請依照以下步驟使用 Eclipse 設定 Tradefed。
建立一個單獨的工作區來開發 Trade Federation,不要重複使用已用於 Android 裝置開發的工作區。
如果需要,您可以從以下位置下載Java 開發人員的 Eclipse IDE : eclipse.org/downloads
創建專案
- 從命令列運行一次 make。這將建構以下項目所依賴的外部庫。
- 在
Window > Preferences > Java > Build Path> Classpath Variables
中設定 TRADEFED_ROOT 類別路徑變量,並將其指向您的 tradefed 來源根目錄 - 在
Window > Preferences > General > Workspace > Linked Resources
中設定 TRADEFED_ROOT 路徑變量,並將其指向您的 tradefed 來源根目錄 使用
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
或者,如果您想查看
ddmlib
原始程式碼,請附加來自非捆綁工具分支的原始程式碼,例如/platform/tools/base/tools_r22/ddmlib/src/main/java/com/android/ddmlib/IDevice.java 。或者,如果您也希望載入 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 樣式指南。若要在 Studio 中執行此操作:
- 轉到“視窗”>“首選項”>“Java”>“程式碼樣式” 。
- 在Formatter下,導入檔案
android-formatting.xml
。 - 在組織 > 導入下,導入檔案
android.importorder
。
刪除尾隨空格
要強制 Eclipse 刪除所有尾隨空格:
- 到Window > Preferences -> Java -> Editor -> Save Actions 。
- 然後“其他操作”->“配置”->“代碼”>“組織”選項卡->“格式化程式” 。
- 選取刪除尾隨空白。
- 點擊應用並關閉。
檢查程式碼風格
提交更改清單時,將執行自動預先上傳掛鉤來檢查您的程式碼格式: google-java-format
這有助於將您的程式碼格式化為通用標準。
調試Eclipse
如果您想透過 Eclipse 中的偵錯器執行 TF 程式碼,建議您先為相關程式碼建立一個單元測試,因為這將是行使該功能的最簡單、最快的方法。
要偵錯 TF 單元測試,只需右鍵單擊它並選擇Debug As > JUnit test 。
若要偵錯 TF 功能測試,請按照上一節中執行功能測試的說明進行操作,但使用「執行」>「偵錯設定」功能表。
若要偵錯TF 程式本身,在執行任何配置時,請按照上一節中執行功能測試的說明進行操作,但為您希望在步驟4 中執行的配置提供命令列參數。因此,請偵錯「儀器」配置,前往Run > Debug 配置選單,並將 Eclipse 偵錯配置中的Arguments標籤設定為-- package <package to run> instrument
。
使用 Eclipse 進行遠端偵錯
請依照下列步驟遠端偵錯從tradefed.sh
命令列啟動的 tradefed 會話:
- 使用偵錯標誌啟動 tradefed.sh:TF_DEBUG=1
TF_DEBUG=1 tradefed.sh
- 等待,直到您看到來自 JVM 的提示:
Listening for transport dt_socket at address: 10088
這表示 JVM 正在等待偵錯器連接到連接埠10088
。 - 從主選單附加 Eclipse 的遠端偵錯:選擇Run > Debug Configurations...。
- 在彈出的對話方塊中,從左側選單中選擇「遠端 Java 應用程式」 。
- 按一下操作列上的新啟動配置圖示。
- 根據需要命名配置並選擇tradefederation作為專案。
- 使用之前提供的位址填入連接埠。
- 切換到Source標籤並將項目tradefederation和google-tradefed新增至Source Lookup Path 。
- 按一下“調試”啟動調試會話。
偵錯器附加到偵聽 JVM 進程,執行tradefed.sh
的終端機顯示tf>
提示字元。
若要在偵錯模式下單步執行程式碼,請在 Eclipse 中設定斷點並在終端機中呼叫 Tradefed 命令(即run <test>
)。要在 TF 啟動期間偵錯任何內容,可以先設定斷點,然後附加 Eclipse 偵錯器。
提示:若要使用備用端口,請將TF_DEBUG_PORT=nnn
新增至上述步驟 1 中的命令。如果您有神秘的掛起錯誤需要調查,您甚至可以在生產環境中使用它:將tradefed.sh
中的suspend=y
更改為suspend=n
並從偵錯標誌開始。 JVM 不會等待偵錯器附加,但只要進程仍在運行,您就可以隨時執行此操作。
使用JDB進行遠端偵錯
若要使用 Java 偵錯器 JDB,請依照與 Eclipse 類似的步驟操作:
- 使用偵錯標誌啟動
tradefed.sh
TF_DEBUG=1 tradefed.sh
- 等待,直到看到 JVM 的提示:
Listening for transport dt_socket at address: 10088
。 連接
jdb
。例如,從 croot 運行:jdb -attach 10088 \ -sourcepath tools/tradefederation/core/src:vendor/google_tradefederation/core/src
等待連接並調試!執行
man jdb
以獲得更多協助。
檢查程式碼覆蓋率
- 安裝Eclemma 插件。
- 前往協助 > 安裝新軟體並將精靈指向:http://update.eclemma.org/
- 安裝後,選擇Coverage As > JUnit測試選項來執行程式碼覆蓋率運行。