

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

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

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

使用以下 `run-suite` 命令运行一系列测试。

```
devicetester_{{[linux | mac | win]}}_x86-64 run-suite  \\
    --suite-id {{suite-id}}  \\
    --group-id {{group-id}}  \\
    --pool-id {{your-device-pool}} \\
    --test-id {{test-id}}  \\
    --update-idt {{y|n}}  \\
    --userdata {{userdata.json}}
```

所有选项均为可选。例如，如果您只有一个设备池（即 `device.json` 文件中定义的一组相同设备），则可以忽略 `pool-id`。或者，如果您要在 `tests` 文件夹中运行最新的测试套件版本，则可以忽略 `suite-id`。

**注意**  
如果在线提供了更新的测试套件版本，IDT 会提示您。有关更多信息，请参阅 [测试套件版本](idt-greengrass-qualification.md#idt-test-suite-versions)。

## 用于运行资格认证套件的示例命令
<a name="idt-run-suite-examples"></a>

以下命令行示例介绍如何针对某个设备池运行资格认证测试。有关 `run-suite` 和其他 IDT 命令的更多信息，请参阅 [Amazon IoT Greengrass V2 命令的 IDT](#bk-cli)。

使用以下命令在指定的测试套件中运行所有测试组。`list-suites` 命令可列出 `tests` 文件夹中的测试套件。

```
devicetester_{{[linux | mac | win]}}_x86-64 run-suite \
    --suite-id GGV2Q_1.0.0 \
    --pool-id {{<pool-id>}} \
    --userdata userdata.json
```

使用以下命令运行测试套件中的特定测试组。`list-groups` 命令可列出测试套件中的测试组。

```
devicetester_{{[linux | mac | win]}}_x86-64 run-suite \
    --suite-id GGV2Q_1.0.0 \
    --group-id {{<group-id>}} \
    --pool-id {{<pool-id>}} \
    --userdata userdata.json
```

使用以下命令运行测试组中的特定测试案例。

```
devicetester_{{[linux | mac | win]}}_x86-64 run-suite \
    --group-id {{<group-id>}} \
    --test-id {{<test-id>}} \
    --userdata userdata.json
```

使用以下命令运行测试组中的多个测试案例。

```
devicetester_{{[linux | mac | win]}}_x86-64 run-suite \
    --group-id {{<group-id>}} \
    --test-id {{<test-id1>,<test-id2>}}
    --userdata userdata.json
```

使用以下命令列出测试组中的所有测试案例。

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

建议您运行完整的资格认证测试套件，该套件会按正确的顺序运行测试组依赖关系。如果您选择运行特定测试组，建议您先运行依赖关系检查程序测试组，以确保在运行相关测试组之前已安装所有 Greengrass 依赖关系。例如：
+ 在运行核心资格测试组之前运行 `coredependencies`。

## Amazon IoT Greengrass V2 命令的 IDT
<a name="bk-cli"></a>

IDT 命令位于 `{{<device-tester-extract-location>}}/bin` 目录中。要运行测试套件，请按以下格式提供命令：

`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 将运行测试套件中的所有相应测试组，具体取决于 `device.json` 中已配置的设置。IDT 不会根据您配置的设置运行设备不支持的任何测试组，即使这些测试组是在 `group-id` 列表中指定的。
+ `test-id`. 要以逗号分隔的列表形式运行的测试用例。指定后，`group-id` 必须指定单个组。
+ `pool-id`. 要测试的设备池。如果您在 `device.json` 文件中定义了多个设备池，则必须指定一个池。
+ `stop-on-first-failure`。将 IDT 配置为在第一次失败时停止运行。当您想要调试指定的测试组时，请将此选项与 `group-id` 配合使用。在运行完整测试套件以生成资格认证报告时，请勿使用此选项。
+ `update-idt`。为更新 IDT 的提示设置响应。如果 IDT 检测到有更新的版本，则 `Y` 响应将停止执行测试。`N` 响应会继续执行测试。
+ `userdata`。包含有关测试构件路径的信息的 `userdata.json` 文件的完整路径。此选项是 `run-suite` 命令所必需的。该`userdata.json`文件必须位于 /devic {{devicetester\_extract\_location}} etester\_ggv2\_ /c {{[win\|mac\|linux]}} onfigs/ 目录中。
有关 `run-suite` 选项的更多信息，请使用 `help` 选项：  

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