按照以下步驟使用 Eclipse 設置 Tradefed。
創建一個單獨的工作區來開發 Trade Federation,不要重複使用已經用於 Android 設備開發的工作區。
如果需要,您可以從以下位置下載適用於 Java 開發人員的 Eclipse IDE : eclipse.org/downloads
創建項目
- 從命令行運行一次。這將構建由以下項目依賴的外部庫。
- 在
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
中。所以你需要檢查一個平台分支,比如master
來獲取這些文件: /development/master/ide/eclipse/
使用 Eclipse 中的首選項文件自動將格式化程序設置為 Android 樣式指南。要在 Studio 中執行此操作:
- 轉到Window > Preferences > Java > Code Style 。
- 在Formatter下,導入文件
android-formatting.xml
。 - 在Organize > Imports下,導入文件
android.importorder
。
刪除尾隨空格
強制 Eclipse 刪除所有尾隨空格:
- 轉到Window > Preferences -> Java -> Editor -> Save Actions 。
- 然後Additional Actions -> Configure -> Code > Organizing tab -> Formatter 。
- 檢查刪除尾隨空格。
- 單擊應用並關閉。
檢查代碼樣式
提交更改列表時,將運行自動預上傳掛鉤以檢查您的代碼格式: 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 會話:
- 使用調試標誌啟動 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 Debugger 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測試選項進行代碼覆蓋運行。