

支援終止通知：2026 年 10 月 7 日 AWS 將停止 的支援 AWS IoT Greengrass Version 1。2026 年 10 月 7 日之後，您將無法再存取 AWS IoT Greengrass V1 資源。如需詳細資訊，請造訪[從 遷移 AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html)。

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

# 偵錯並執行自訂測試套件
<a name="run-tests-custom"></a>

設定[必要的組態](set-config-custom.md)後，IDT 可以執行您的測試套件。完整測試套件的執行時間取決於硬體和測試套件的組成。如需參考，在 Raspberry Pi 3B AWS IoT Greengrass 上完成完整資格測試套件大約需要 30 分鐘。 3B

撰寫測試套件時，您可以使用 IDT 在偵錯模式下執行測試套件，在執行程式碼之前先檢查程式碼，或將其提供給測試執行器。

## 在偵錯模式下執行 IDT
<a name="idt-debug-mode"></a>

由於測試套件依賴 IDT 與裝置互動、提供內容並接收結果，因此您無法在沒有任何 IDT 互動的情況下，在 IDE 中對測試套件進行偵錯。若要這樣做，IDT CLI 會提供 `debug-test-suite`命令，可讓您在偵錯模式下執行 IDT。執行下列命令以檢視 的可用選項`debug-test-suite`：

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

當您在偵錯模式下執行 IDT 時，IDT 實際上不會啟動測試套件或執行狀態機器；而是與您的 IDE 互動，以回應從 IDE 中執行的測試套件發出的請求，並將日誌列印到主控台。IDT 不會逾時，並等待結束，直到手動中斷為止。在偵錯模式中，IDT 也不會執行狀態機器，也不會產生任何報告檔案。若要偵錯您的測試套件，您必須使用 IDE 來提供 IDT 通常從組態 JSON 檔案取得的一些資訊。請務必提供下列資訊：
+ 每個測試的環境變數和引數。IDT 不會從 `test.json`或 讀取此資訊`suite.json`。
+ 選取資源裝置的引數。IDT 不會從 讀取此資訊`test.json`。

若要偵錯您的測試套件，請完成下列步驟：

1.  建立執行測試套件所需的設定組態檔案。例如，如果您的測試套件需要 `device.json`、 `resource.json`和 `user data.json`，請務必視需要設定所有測試套件。

1. 執行下列命令，將 IDT 置於偵錯模式，然後選取執行測試所需的任何裝置。

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

   執行此命令後，IDT 會等待測試套件的請求，然後回應這些請求。IDT 也會產生 IDT 用戶端 SDK 案例程序所需的環境變數。

1. 在 IDE 中，使用 `run`或 `debug`組態來執行下列動作：

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

   1. 設定您在 `test.json`和 `suite.json` 檔案中指定的任何環境變數或引數的值。

   1. 視需要設定中斷點。

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

   您可以視需要多次偵錯並重新執行測試套件。IDT 不會在偵錯模式下逾時。

1.  完成偵錯後，請中斷 IDT 以結束偵錯模式。

## 用於執行測試的 IDT CLI 命令
<a name="idt-cli-commands"></a>

下節說明 IDT CLI 命令：

------
#### [ IDT v4.0.0 ]

`help`  <a name="idt-command-help"></a>
列出所指定命令的相關資訊。

`list-groups`  <a name="idt-command-list-groups"></a>
列出指定測試套件中的群組。

`list-suites`  <a name="idt-command-list-suites"></a>
列出可用的測試套件。

`list-supported-products`  
列出目前 IDT 版本可用的 IDT AWS IoT Greengrass 版本和 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`。 設定 檔案，其中包含執行測試套件所需的使用者資料資訊。只有在測試套件的 `suite.json` 檔案中`userdataRequired`設定為 true 時，才需要這樣做。
如需 `run-suite` 選項的詳細資訊，請使用下列 `help` 選項：  

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

`debug-test-suite`  
在除錯模式下執行測試套件。如需詳細資訊，請參閱[在偵錯模式下執行 IDT](#idt-debug-mode)。

------