

终止支持通知：2026 年 10 月 7 日， Amazon 将停止对的支持。 Amazon IoT Greengrass Version 1 2026 年 10 月 7 日之后，您将无法再访问这些 Amazon IoT Greengrass V1 资源。如需了解更多信息，请访问[迁移自 Amazon IoT Greengrass Version 1](https://docs.amazonaws.cn/greengrass/v2/developerguide/migrate-from-v1.html)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 运行 Amazon IoT Greengrass 资格套件
<a name="run-tests"></a>

[设置所需的配置](set-config.md)后，就可以开始测试了。完整测试套件的运行时取决于您的硬件。作为参考，在 Raspberry Pi 3B 上完成完整的测试套件大约需要 30 分钟。

以下 `run-suite` 命令示例介绍如何针对某个设备池运行资格测试。设备池是一组相同的设备。

------
#### [ IDT v3.0.0 and later ]

在指定的测试套件中运行所有测试组。  

```
devicetester_{{[linux | mac | win_x86-64]}} run-suite --suite-id GGQ_1.0.0 --pool-id {{<pool-id>}}
```
使用 `list-suites` 命令列出 `tests` 文件夹中的测试套件。

在测试套件中运行特定的测试组。  

```
devicetester_{{[linux | mac | win_x86-64]}} run-suite --suite-id GGQ_1.0.0 --group-id {{<group-id>}} --pool-id {{<pool-id>}}
```
使用 `list-groups` 命令列出测试套件中的测试组。

在测试组中运行特定测试用例。  

```
devicetester_{{[linux | mac | win_x86-64]}} run-suite --group-id {{<group-id>}} --test-id {{<test-id>}}
```

在测试组中运行多个测试用例。  

```
devicetester_{{[linux | mac | win_x86-64]}} run-suite --group-id {{<group-id>}} --test-id {{<test-id1>,<test-id2>}}
```

列出测试组中的测试用例。  

```
devicetester_{{[linux | mac | win_x86-64]}} list-test-cases --group-id {{<group-id>}}
```

`run-suite` 命令的选项是可选的。例如，如果您的 `device.json` 文件中只定义了一个设备池，则可以忽略 `pool-id`。或者，如果您要在 `tests` 文件夹中运行最新的测试套件版本，则可以忽略 `suite-id`。

**注意**  
如果在线提供了更新的测试套件版本，IDT 会提示您。有关更多信息，请参阅 [设置默认更新行为](#idt-update-behavior)。

有关 `run-suite` 和其他 IDT 命令的更多信息，请参阅 [同意 Amazon IoT Greengrass 命令](#bk-cli)。

------
#### [ IDT v2.3.0 and earlier ]

在指定套件中运行所有测试组。  

```
devicetester_{{[linux | mac | win_x86-64]}} run-suite --suite-id GGQ_1 --pool-id {{<pool-id>}}
```

运行特定测试组。  

```
devicetester_{{[linux | mac | win_x86-64]}} run-suite --suite-id GGQ_1 --group-id {{<group-id>}} --pool-id {{<pool-id>}}
```
如果您在单个设备池上运行单个测试套件，则 `suite-id` 和 `pool-id` 是可选的。这意味着您的 `device.json` 文件中只定义了一个设备池。

------

## 检查 Greengrass 的依赖关系
<a name="idt-dependency-checker"></a>

我们建议您运行依赖项检查程序测试组，以确保在运行相关测试组之前已安装所有 Greengrass 依赖项。例如：
+ 在运行核心资格测试组之前运行 `ggcdependencies`。
+ 在运行特定于容器的测试组之前运行 `containerdependencies`。
+ `dockerdependencies`在运行 Docker-specific 测试组之前运行。
+ 在运行特定于流管理器的测试组之前运行 `ggcstreammanagementdependencies`。

## 设置默认更新行为
<a name="idt-update-behavior"></a>

当您开始测试运行时，IDT 会在线检查是否有更新的测试套件版本。如果有，IDT 会提示您更新到最新的可用版本。您可以设置 `upgrade-test-suite`（或 `u`）标记来控制默认更新行为。有效值为：
+ `y`. IDT 会下载并使用最新的可用版本。
+ `n` (默认值)。IDT 会使用 `suite-id` 选项中指定的版本。如果未指定 `suite-id`，IDT 将使用 `tests` 文件夹中的最新版本。

如果您未使用 `upgrade-test-suite` 标记，IDT 会在有更新可用时提示您，并会等待 30 秒让您输入（`y` 或 `n`）。如果您未输入信息，则默认为 `n` 并继续运行测试。

以下示例显示了此功能的常见用例：

**自动使用可用于测试组的最新测试。**  

```
devicetester_linux run-suite -u y --group-id mqtt --pool-id DevicePool1
```

**在特定测试套件版本中运行测试。**  

```
devicetester_linux run-suite -u n --suite-id GGQ_1.0.0 --group-id mqtt --pool-id DevicePool1
```

**运行时提示更新。**  

```
devicetester_linux run-suite --pool-id DevicePool1
```

## 同意 Amazon IoT Greengrass 命令
<a name="bk-cli"></a>

IDT 命令位于 `{{<device-tester-extract-location>}}/bin` 目录中。它们可以用于以下操作：

------
#### [ IDT v3.0.0 and later ]

`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 Amazon IoT Greengrass 版本支持的产品（在本例中为版本）和测试套件版本。

`list-test-cases`  
列出给定测试组中的测试用例。支持以下选项：  
+ `group-id`. 要搜索的测试组。此选项是必需的，必须指定单个组。

`run-suite`  
对某个设备池运行一组测试。以下是一些受支持的选项：  
+ `suite-id`. 要运行的测试套件版本。如果未指定，IDT 将使用 `tests` 文件夹中的最新版本。
+ `group-id`. 要以逗号分隔的列表形式运行的测试组。如果未指定，IDT 将运行测试套件中的所有测试组。
+ `test-id`. 要以逗号分隔的列表形式运行的测试用例。指定后，`group-id` 必须指定单个组。
+ `pool-id`. 要测试的设备池。如果您在 `device.json` 文件中定义了多个设备池，则必须指定一个池。
+ `upgrade-test-suite`. 控制如何处理测试套件版本更新。从 IDT v3.0.0 开始，IDT 在线检查更新的测试套件版本。有关更多信息，请参阅 [测试套件版本](idt-gg-qualification.md#idt-test-suite-versions)。
+ `stop-on-first-failure`. 将 IDT 配置为在第一次失败时停止执行。应将此选项与 `group-id` 结合使用来调试指定的测试组。在运行完整测试套件以生成资格认证报告时，请勿使用此选项。
+ `update-idt`. 设置对更新 IDT 的提示的响应。如果 IDT 检测到有更新的版本，输入 `Y` 将会停止执行测试。输入 `N` 将会继续执行测试。
+ `update-managed-policy`。如果 IDT 检测到用户的托管策略未更新，输入 `Y` 将会停止执行测试。输入 `N` 将会继续执行测试。
有关 `run-suite` 选项的更多信息，请使用 `help` 选项：  

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

------
#### [ IDT v2.3.0 and earlier ]

`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>
列出可用的测试套件。

`run-suite`  
对某个设备池运行一组测试。  
有关 `run-suite` 选项的更多信息，请使用 `help` 选项：  

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

------