加入單元和功能測試

本節說明如何執行交易聯盟測試,並做出貢獻 變更專案後這類功能包括:

  • 新增單元測試類別的位置
  • 在 Eclipse 與 Eclipse IDE 外執行單元測試
  • 哪些地方可以新增功能測試
  • 執行功能測試
  • 在本機執行部分 TF 預先提交驗證

新增單元測試

在 Android 開放原始碼計畫 (AOSP) 中新增單元測試類別: tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java

重要注意事項:在這些位置中新增單元測試類別將會導致 這類元件會自動在預先提交中運作,無須進行額外設定

執行單元測試

貿易聯盟的所有 Android 開放原始碼計畫單元測試和功能測試位於 這個 tools/tradefederation/core/tests敬上 專案。

在 Eclipse 中,如要執行個別單元測試,只需在測試上按一下滑鼠右鍵, 選取「Run As」>JUnit。如要執行所有單元測試,請執行 com.android.tradefed.UnitTests 套件。

您也可以透過 Tradefed 來源的指令列啟動單元測試 如下所示: tools/tradefederation/core/javatests/run_tradefed_tests.sh

獨立執行單元測試,但功能測試應執行 取用相關權利內容需要使用 Android 裝置全功能 測試應遵循命名慣例 *FuncTest

查看單元測試結果

執行 run_tradefed_tests.sh 時,單元測試會執行 測試控管工具,包括一些錯誤狀況。系統會輸出詳細輸出內容 包括堆疊追蹤

結果的最終摘要會指出是否失敗。

控制台中的最終摘要範例:

12:55:02 ========== Result Summary ==========
Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]

所有測試都會保持通過,因此如果本機變更發生任何失敗 請確認測試已修正。

新增功能測試

  • 如果您的功能測試涉及裝置 (使用任何 ITestDevice API),請 套件定義位於 com.android.tradefed.DeviceFuncTests。 否則套件定義位於 com.android.tradefed.FuncTests

  • 如果您的測試方法適合加入其中一個現有的套件子類別 並傾向加入該部門否則,您可以在 套件

  • 無論是哪一種情況,只要將其新增至套件,系統就會自動執行測試 以及其他功能測試

執行功能測試

如何透過 Eclipse 執行功能測試:

  1. 確認裝置已連線至主機,且adb (如有需要) fastboot 位於 Eclipse 的 PATH 中。最簡單的方式就是 從具有適當 PATH 的殼層設定 Eclipse。
  2. 建立 Java 應用程式。透過「Run」>「Run」執行設定在 設定
  3. 將專案設為 tradefed-tests,並將主要類別設為 com.android.tradefed.command.CommandRunner
  4. 執行 m tradefed-all
  5. 在「Arguments」分頁中提供下列指令列引數:host --class <full path of test class to run>
  6. 按一下「Run」。

在 Eclipse 以外的地方執行功能測試。

  1. 建立貿易聯盟。
  2. 將 Android 裝置連線至主機。
  3. 執行 tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
  4. 視需要附加 --serial <serial no>,藉此選擇裝置 會出現在 adb devices 的輸出內容中

針對本機變更執行 TF 預先提交測試

如果您想執行與 TF 預先提交類似的執行程序,請使用下列指令:

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

這會針對本機建構的 TF 觸發所有 TF 預先提交測試, 幫助您確認變更不會破壞任何測試。

TF 預先提交測試是上述單元測試的超集合,但測試速度較慢 而非執行該容器因此,建議您在開發期間執行單元測試 可以加快驗證速度,並在上傳 CL 之前執行預先提交。