將 end-to-end 賽普拉斯測試添加到您 Amplify 應用程序 - AWS Amplify 託管

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

將 end-to-end 賽普拉斯測試添加到您 Amplify 應用程序

您可以在 Amplify 應用程式的測試階段執行 end-to-end (E2E) 測試,以便在將程式碼推送至生產環境之前 catch 回歸。測試階段可以在組建規格 YAML 中進行配置。目前,您只能在建置期間執行 Cypress 測試架構。

教程:使用賽普拉斯設置 end-to-end測試

Cypress 是一個 JavaScript基於測試框架,允許您在瀏覽器上運行 E2E 測試。如需示範如何設定 E2E 測試的教學課程,請參閱使用 Amplify 執行完整堆疊 CI/CD 部署的 end-to-end Cypress 測試部落格文章。

將測試新增至您現有的 Amplify 應用程式

您可以通過在 Amplify 控制台中更新應用程序的構建設置,將 Cypress 測試添加到現有的應用程序。組建規格 YAML 包含組建命令集合,以及 Amplify 用來執行組建的相關設定。使用test步驟在構建時運行任何測試命令。對於 E2E 測試,Amplify 託管提供了與賽普拉斯的更深入的集成,使您可以為測試生成 UI 報告。

下列清單說明測試設定及其使用方式。

預測

安裝執行 Cypress 測試所需的相依性。Amplify 託管使用 mochawesome 生成報告以查看您的測試結果,並等待在構建過程中設置本地主機服務器。

test

運行柏樹命令來使用 mochawesome 執行測試。

後測

該報告是從輸出 JSON 生成的。請注意,如果您使用的是 Yarn,您必須以靜音模式執行此指令,才能產生 mochawesome 報告。對於 Yarn,您可以使用以下命令。

yarn run --silent mochawesome-merge cypress/report/mochawesome-report/mochawesome*.json > cypress/report/mochawesome.json
人工藝品 > 基本目錄

執行測試的目錄。

人工藝品 > configFilePath

生成的測試報告數據。

人工因素 > 檔案

生成的工件(屏幕截圖和視頻)可供下載。

下列範例摘錄自組建規格amplify.yml檔案,說明如何將 Cypress 測試新增至您的應用程式。

test: phases: preTest: commands: - npm ci - npm install -g pm2 - npm install -g wait-on - npm install mocha mochawesome mochawesome-merge mochawesome-report-generator - pm2 start npm -- start - wait-on http://localhost:3000 test: commands: - 'npx cypress run --reporter mochawesome --reporter-options "reportDir=cypress/report/mochawesome-report,overwrite=false,html=false,json=true,timestamp=mmddyyyy_HHMMss"' postTest: commands: - npx mochawesome-merge cypress/report/mochawesome-report/mochawesome*.json > cypress/report/mochawesome.json - pm2 kill artifacts: baseDirectory: cypress configFilePath: '**/mochawesome.json' files: - '**/*.png' - '**/*.mp4'

禁用測試

將測試配置添加到amplify.yml構建設置後,該test步驟會在每個分支上為每個構建運行。如果您想全局禁用運行測試,或者僅對特定分支運行測試,則可以使用USER_DISABLE_TESTS環境變量而無需修改構建設置。

全局禁用所有分支的測試,請添加所有分支的值true為的USER_DISABLE_TESTS環境變量。下列螢幕擷取畫面顯示 Amplify 主控台中的 [環境變數] 區段,並針對所有分支停用測試。

Amplify 控制台中的環境變量部分。

要禁用特定分支的測試,請添加所有分支的值false為的USER_DISABLE_TESTS環境變量,然後為您要禁用的每個分支添加覆蓋值,其值為true。在下面的屏幕截圖中,測試在分支上被禁用,並為每隔一個分支啟用。

Amplify 控制台中的環境變量部分。

使用此變數停用測試會導致在建置期間完全略過測試步驟。若要重新啟用測試,請將此值設定為false,或刪除環境變數。