test-e2e - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

test-e2e

使用 Amazon IoT Greengrass 开发工具包命令行界面(GDK CLI)中的 test-e2e 命令在 GDK 项目中初始化、构建和运行端到端测试模块。

子命令

init

借助使用 Greengrass 测试框架(GTF)的测试模块初始化现有的 GDK CLI 项目。

默认情况下,GDK CLI 从 GitHub 上的 Amazon IoT Greengrass 组件模板存储库中检索 maven 模块模板。这个 maven 模块附带了对 aws-greengrass-testing-standalone JAR 文件的依赖关系。

此命令在 GDK 项目内创建一个名为 gg-e2e-tests 的新目录。如果测试模块目录已经存在且不为空,则命令将不执行任何操作就退出。此 gg-e2e-tests 文件夹包含 Maven 项目中结构化的 Cucumber 功能和步骤定义。

默认情况下,此命令将尝试使用最新发行版的 GTF。

摘要
$ gdk test-e2e init [--gtf-version]
Arguments (参数)
  • -ov--gtf-version –(可选)在 GDK 项目中的端到端测试模块中使用的 GTF 版本。此值必须属于发行版中的 GTF 版本。此参数覆盖 GDK CLI 配置中的 gtf_version

输出

以下示例显示了运行此命令以使用测试模块初始化 GDK 项目时产生的输出。

$ gdk test-e2e init [2023-12-06 12:20:28] INFO - Using the GTF version provided in the GDK test config 1.2.0 [2023-12-06 12:20:28] INFO - Downloading the E2E testing template from GitHub into gg-e2e-tests directory...

build

注意

您必须通过运行 gdk component build 来构建组件,然后才能构建端到端测试模块。

构建端到端测试模块。GDK CLI 使用您在 GDK CLI 配置文件 gdk-config.json 中的 test-e2e 属性下指定的构建系统来构建测试模块。您必须在 gdk-config.json 文件所在的同一文件夹中运行此命令。

默认情况下,GDK CLI 使用 maven 构建系统来构建测试模块。需要使用 Maven 才能运行 gdk test-e2e build 命令。

如果测试功能文件有 GDK_COMPONENT_NAMEGDK_COMPONENT_RECIPE_FILE 等变量需要插值,则必须通过运行 gdk-component-build 构建组件,然后才能构建测试模块。

运行此命令时,GDK CLI 会插入 GDK 项目配置中的所有变量,并构建 gg-e2e-tests 模块以生成最终的测试 JAR 文件。

摘要
$ gdk test-e2e build
Arguments (参数)

输出

下面的示例显示运行此命令时产生的输出。

$ gdk test-e2e build [2023-07-20 15:36:48] INFO - Updating feature file: file:///path/to//HelloWorld/greengrass-build/gg-e2e-tests/src/main/resources/greengrass/features/component.feature [2023-07-20 15:36:48] INFO - Creating the E2E testing recipe file:///path/to/HelloWorld/greengrass-build/recipes/e2e_test_recipe.yaml [2023-07-20 15:36:48] INFO - Building the E2E testing module [2023-07-20 15:36:48] INFO - Running the build command 'mvn package' .........

run

使用 GDK 配置文件中的测试选项运行测试模块。

注意

您必须通过运行 gdk test-e2e build 构建测试模块,然后才能运行端到端测试。

摘要
$ gdk test-e2e run [--gtf-options]
Arguments (参数)
  • -oo--gtf-options –(可选)指定运行端到端测试的选项列表。参数必须是有效的 JSON 字符串或包含 GTF 选项的 JSON 文件的文件路径。配置文件中提供的选项与命令参数中提供的选项合并。如果一个选项在两个位置都存在,则参数中的选项优先于配置文件中的选项。

    如果此命令中未指定 tags 选项,GDK 会将 Sample 用于标签。如果未指定 ggc-archive,GDK 将下载最新版本的 Greengrass Nucleus 存档。

输出

下面的示例显示运行此命令时产生的输出。

$ gdk test-e2e run [2023-07-20 16:35:53] INFO - Downloading latest nucleus archive from url https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-latest.zip [2023-07-20 16:35:57] INFO - Running test jar with command java -jar /path/to/greengrass-build/gg-e2e-tests/target/uat-features-1.0.0.jar —ggc-archive=/path/to/aws-greengrass-gdk-cli/HelloWorld/greengrass-build/greengrass-nucleus-latest.zip —tags=Sample 16:35:59.693 [] [] [] [INFO] com.aws.greengrass.testing.modules.GreengrassContextModule - Extracting /path/to/workplace/aws-greengrass-gdk-cli/HelloWorld/greengrass-build/greengrass-nucleus-latest.zip into /var/folders/7g/ltzcb_3s77nbtmkzfb6brwv40000gr/T/gg-testing-7718418114158172636/greengrass 16:36:00.534 [gtf-1.1.0-SNAPSHOT] [] [] [INFO] com.aws.greengrass.testing.features.LoggerSteps - GTF Version is gtf-1.1.0-SNAPSHOT .......