跳至主要內容

從 v6 升級到 v7

本教學適用於仍在使用 WebdriverIO v6 並想遷移到 v7 的使用者。如我們在發布部落格文章中提到的,變更主要是在底層,升級過程應該很直接。

資訊

如果您正在使用 WebdriverIO v5 或更低版本,請先升級到 v6。請查看我們的v6 遷移指南

雖然我們很希望這個過程能完全自動化,但現實並非如此。每個人的設定都不同。每個步驟都應該被視為指導,而不是逐步指示。如果您在遷移時遇到問題,請隨時與我們聯繫

設定

與其他遷移類似,我們可以使用 WebdriverIO codemod。在本教學中,我們使用社群成員提交的樣板專案,並將其從 v6 完全遷移到 v7

若要安裝 codemod,請執行

npm install jscodeshift @wdio/codemod

提交:

升級 WebdriverIO 相依性

由於所有 WebdriverIO 版本都彼此緊密相連,因此最好始終升級到特定標籤,例如 latest。若要這麼做,我們將所有 WebdriverIO 相關相依性複製出我們的 package.json,並透過以下方式重新安裝它們

npm i --save-dev @wdio/allure-reporter@7 @wdio/cli@7 @wdio/cucumber-framework@7 @wdio/local-runner@7 @wdio/spec-reporter@7 @wdio/sync@7 wdio-chromedriver-service@7 wdio-timeline-reporter@7 webdriverio@7

通常,WebdriverIO 相依性是開發相依性的一部分,但這會因您的專案而異。完成後,您的 package.jsonpackage-lock.json 應會更新。注意:這些是範例專案所使用的相依性,您的可能不同。

提交:

轉換設定檔

好的第一步是從設定檔開始。在 WebdriverIO v7 中,我們不再需要手動註冊任何編譯器。事實上,它們需要被移除。這可以透過 codemod 完全自動完成

npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./wdio.conf.js
注意

codemod 尚不支援 TypeScript 專案。請參閱@webdriverio/codemod#10。我們正在努力盡快實作對它的支援。如果您正在使用 TypeScript,請參與其中!

提交:

更新步驟定義

如果您正在使用 Jasmine 或 Mocha,您已經完成此處。最後一步是將 Cucumber.js 匯入從 cucumber 更新為 @cucumber/cucumber。這也可以透過 codemod 自動完成

npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./src/e2e/*

就是這樣!無需進行更多變更 🎉

提交:

結論

我們希望本教學能稍微引導您完成 WebdriverIO v7 的遷移過程。社群持續改進 codemod,同時在各個組織中與各個團隊一起測試它。如果您有任何回饋,請隨時提出問題;如果您在遷移過程中遇到困難,請發起討論

歡迎!我能幫您做什麼?

WebdriverIO AI Copilot