設定 Amplify 應用程式的 end-to-end Cypress 測試 - AWS Amplify 託管

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

設定 Amplify 應用程式的 end-to-end Cypress 測試

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

Cypress 是以 JavaScript為基礎的測試架構,可讓您在瀏覽器上執行 E2E 測試。如需示範如何設定 E2E 測試的教學課程,請參閱使用 Amplify 進行完整堆疊 CI/CD 部署的部落格文章執行 end-to-end Cypress 測試

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

您可以在 Amplify 主控台中更新應用程式的建置設定,將 Cypress 測試新增至現有應用程式。建置規格YAML包含建置命令的集合,以及 Amplify 用來執行建置的相關設定。使用 test 步驟在建置時執行任何測試命令。對於 E2E 測試,Amplify Hosting 提供與 Cypress 的更深入整合,可讓您產生測試的 UI 報告。

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

preTest

安裝執行 Cypress 測試所需的相依性。Amplify Hosting 使用 mochawesome 產生報告,以檢視您的測試結果,並在建置期間等待設定 localhost 伺服器。

test

執行 cypress 命令,以使用 mochawesome 執行測試。

postTest

超棒的報告是從輸出 產生JSON。請注意,如果您使用的是 Yarn,您必須以靜音模式執行此命令,才能產生令人驚嘆的報告。對於 Yarn,您可以使用下列命令。

yarn run --silent mochawesome-merge cypress/report/mochawesome-report/mochawesome*.json > cypress/report/mochawesome.json
成品>baseDirectory

執行測試的目錄。

成品>configFilePath

產生的測試報告資料。

artifacts>files

產生的成品 (螢幕擷取畫面和影片) 可供下載。

下列建置規格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 應用程式或分支的測試

將測試組態新增至amplify.yml建置設定後,每個建置、每個分支都會執行 test 步驟。如果您想要全域停用執行中的測試,或只對特定分支執行測試,您可以使用 USER_DISABLE_TESTS 環境變數,而不修改建置設定。

若要全域停用所有分支的測試,請新增 USER_DISABLE_TESTS 所有分支的值為 true 的環境變數。下列螢幕擷取畫面顯示 Amplify 主控台中的環境變數區段,並停用所有分支的測試。

Amplify 主控台中的環境變數區段。

若要停用特定分支的測試,請新增 USER_DISABLE_TESTS false 針對所有分支的值為 的環境變數,然後為要停用的每個分支新增覆寫,值為 true。在下列螢幕擷取畫面中,主要分支上的測試會停用,每隔一個分支都會啟用測試。

Amplify 主控台中的環境變數區段。

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