測試 E2E - AWS IoT Greengrass

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

測試 E2E

使用開AWS IoT Greengrass發套件test-e2e命令列介面 (GDK CLI) 中的命令,在 GDK 專案中初始化、建置和執行 end-to-end 測試模組。

子命令

init

使用使用 Greengrass 測試框架(GTF)的測試模塊初始化現有的 GDK CLI 項目。

默認情況下,GDK CLI 檢索從組AWS IoT Greengrass件模板存儲庫上 GitHub的 Maven 模塊模板。這個 Maven 模塊帶有對 aws-greengrass-testing-standalone JAR 文件的依賴關係。

這個命令創建一個名為 GDK 項目gg-e2e-tests內的新目錄。如果 test 模組目錄已存在且不為空,則指令會結束而不執行任何動作。此gg-e2e-tests文件夾包含在 Maven 項目結構的黃瓜功能和步驟定義。

默認情況下,該命令將嘗試使用最新版本的 GTF。

概要
$ gdk test-e2e init [--gtf-version]
Arguments (引數)
  • -ov, --gtf-version — (選用) GDK 專案中與 end-to-end 測試模組搭配使用的 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

注意

在構建 end-to-end 測試模塊gdk component build之前,您必須通過運行構建組件。

構建測 end-to-end 試模塊。GDK CLI 會使用您在 GDK CLI 組態檔案中指定的建置系統,gdk-config.json在屬性下建置測試模組。test-e2e您必須在gdk-config.json檔案所在的相同資料夾中執行此命令。

默認情況下,GDK CLI 使用 Maven 構建系統來構建測試模塊。Maven 需要運行該gdk test-e2e build命令。

如果測試功能文件具有類似GDK_COMPONENT_NAME和插值的變量,則必須在構建測試模塊gdk-component-build之前運行構GDK_COMPONENT_RECIPE_FILE建組件。

當您執行此命令時,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之前,您必須通過運行來構建測 end-to-end 試模塊。

概要
$ gdk test-e2e run [--gtf-options]
Arguments (引數)
  • -oo, --gtf-options — (選擇性) 指定用於執行 end-to-end 測試的選項清單。引數必須是有效的 JSON 字串或包含 GTF 選項之 JSON 檔案的檔案路徑。組態檔案中提供的選項會與命令引數中提供的選項合併。如果兩個選項都存在,則參數中的一個選項會優先於配置文件中的選項。

    如果未在此命令中指定該tags選項,GDK 將用Sample於標籤。如果ggc-archive未指定,GDK 會下載最新版本的 Greengrass 核壓縮檔。

輸出

下列範例顯示執行此命令時產生的輸出。

$ 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 .......