preloader
心得

Change Testcafe to Cypress for developer experience of Testing Nested Shadow DOM | 用 Cypress 替換掉 Testcafe ,測試 Shadow DOM

Change Testcafe to Cypress for developer experience of Testing Nested Shadow DOM | 用 Cypress 替換掉 Testcafe ,測試 Shadow DOM

Testcafe 套件選取 HTML 的 Shadow DOM,撰寫很麻煩,沒有全域執行的設定選項可開啟,而且它需要依照 HTML 結構逐層寫選擇器,才能選到想要的元素。這樣做法要套用在已經存在的測試案例實在是太麻煩,因為改寫成本太高、選擇器內容太長,所以我改用 Cypress 套件,並在檔案 cypress.config.ts 裡提供全域執行的選項 includeShadowDom: true,讓 cypress 執行時預設會解析 HTML 結構裡的 Shadow DOM,而不需撰寫逐層經過的選擇器。

我服務的公司原本是使用 Testcafe 套件進行 E2E 測試,但因為產品前端從 ionic v3 升級到 v4 後,ionic v4 開始預設使用 Shadow DOM 做元件,所以使用的 Testcafe 既存測試案例寫法,由於本文第一段內容提到的 Testcafe 原因,而不再符合產品所需。另外,我看 Testcafe 套件在 github 網站的 issue 頁中的討論,並沒有打算讓它解析 Shadow DOM 選擇器的開發者體驗更好,所以我建議大家能陸續安排改用其他對 Shadow DOM 選擇器解析,有良好開發者體驗的測試套件。