本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
test-e2e
使用 Amazon IoT Greengrass 开发工具包命令行界面(GDK CLI)中的 test-e2e
命令在 GDK 项目中初始化、构建和运行端到端测试模块。
init
借助使用 Greengrass 测试框架(GTF)的测试模块初始化现有的 GDK CLI 项目。
默认情况下,GDK CLI 从 GitHub 上的 Amazon IoT Greengrass 组件模板存储库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 构建系统来构建测试模块。需要使用 Mavengdk test-e2e
build
命令。
如果测试功能文件有 GDK_COMPONENT_NAME
和 GDK_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 .......