偵錯並執行自訂測試套件 - AWS IoT Greengrass

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

偵錯並執行自訂測試套件

置所需的配置後,IDT 可以運行您的測試套件。完整測試套件的運行時取決於硬件和測試套件的組合。作為參考,大約需要 30 分鐘才能完成 Raspberry Pi 3B 上的完整AWS IoT Greengrass資格測試套件。

在編寫測試套件時,可以使用 IDT 在調試模式下運行測試套件,以在運行代碼之前檢查代碼或將其提供給測試運行程序。

在除錯模式下執行 IDT

由於測試套件依賴 IDT 與設備交互,提供上下文並接收結果,因此您無法在沒有任何 IDT 交互的情況下簡單地在 IDE 中調試測試套件。為此,IDT CLI 提供了可讓您在除錯模式下執行 IDT 的debug-test-suite命令。執行下列命令以檢視下列項目的可用選項debug-test-suite

devicetester_[linux | mac | win_x86-64] debug-test-suite -h

當您在偵錯模式下執行 IDT 時,IDT 實際上並不會啟動測試套件或執行測試協調程式;相反,它會與 IDE 互動,以回應從 IDE 中執行的測試套件發出的要求,並將記錄檔列印到主控台。IDT 不會逾時並等待結束,直到手動中斷為止。在偵錯模式下,IDT 也不會執行測試協調程式,也不會產生任何報告檔案。要調試您的測試套件,您必須使用 IDE 來提供 IDT 通常從配置 JSON 文件中獲取的一些信息。請務必提供下列資訊:

  • 每個測試的環境變數和引數。IDT 不會從test.jsonsuite.json讀取此資訊。

  • 用於選取資源裝置的引數。IDT 不會從test.json中讀取此信息。

若要偵錯測試套件,請完成以下步驟:

  1. 建立執行測試套件所需的設定組態檔案。例如,如果您的測試套件需要device.jsonresource.json、和user data.json,請確保您根據需要配置所有這些。

  2. 執行下列命令,將 IDT 置於偵錯模式,並選取執行測試所需的任何裝置。

    devicetester_[linux | mac | win_x86-64] debug-test-suite [options]

    運行此命令後,IDT 會等待來自測試套件的請求,然後對其進行響應。IDT 也會產生 IDT 用戶端 SDK 案例程序所需的環境變數。

  3. 在您的 IDE 中,使用rundebug組態來執行下列動作:

    1. 設定 IDT 產生的環境變數的值。

    2. 設定您在test.jsonsuite.json檔案中指定的任何環境變數或引數的值。

    3. 視需要設定中斷點。

  4. 在 IDE 中執行測試套件。

    您可以根據需要多次調試和重新運行測試套件。IDT 在除錯模式下不會逾時。

  5. 完成除錯之後,請中斷 IDT 以結束偵錯模式。

用於運行測試的 IDT CLI 命令

下一節將說明 IDT CLI 指令:

IDT v4.0.0
help

列出所指定命令的相關資訊。

list-groups

列出指定測試套件中的群組。

list-suites

列出可用的測試套件。

list-supported-products

列出您 IDT 版本的支援產品、AWS IoT Greengrass本例中的版本,以及適用於目前 IDT 版本的AWS IoT Greengrass限定測試套件版本。

list-test-cases

列出特定測試群組中的測試案例。支援下列選項:

  • group-id。 要搜尋的測試群組。此選項為必要選項,且必須指定單一群組。

run-suite

在裝置集區上執行測試套件。以下是一些常用的選項:

  • suite-id。 要運行的測試套件版本。如果未指定,IDT 會使用 tests 資料夾中的最新版本。

  • group-id。 要執行的測試群組,以逗號分隔的清單形式。如果未指定,IDT 會執行測試套件中的所有測試群組。

  • test-id。 要運行的測試用例,以逗號分隔的列表。指定時,group-id 必須指定單一群組。

  • pool-id。 要測試的裝置集區。如果測試運行程序在您的device.json文件中定義了多個設備池,則必須指定一個池。

  • timeout-multiplier。 設定 IDT 以修改test.json檔案中指定的測試執行逾時,以使用使用者定義的乘數進行測試。

  • stop-on-first-failure。 設定 IDT 以在第一次失敗時停止執行。此選項應與 group-id 搭配使用以偵錯指定的測試群組。

  • userdata。 設置包含運行測試套件所需的用戶數據信息的文件。只有在測試套件userdataRequiredsuite.json文件中設置為 true 時,才需要這樣做。

如需 run-suite 選項的詳細資訊,請使用下列 help 選項:

devicetester_[linux | mac | win_x86-64] run-suite -h
debug-test-suite

在調試模式下運行測試套件。如需更多詳細資訊,請參閱 在除錯模式下執行 IDT