從 v6 升級到 v7
本教學適用於仍在使用 WebdriverIO v6
並想遷移到 v7
的使用者。如我們在發布部落格文章中提到的,變更主要是在底層,升級過程應該很直接。
如果您正在使用 WebdriverIO v5
或更低版本,請先升級到 v6
。請查看我們的v6 遷移指南。
雖然我們很希望這個過程能完全自動化,但現實並非如此。每個人的設定都不同。每個步驟都應該被視為指導,而不是逐步指示。如果您在遷移時遇到問題,請隨時與我們聯繫。
設定
與其他遷移類似,我們可以使用 WebdriverIO codemod。在本教學中,我們使用社群成員提交的樣板專案,並將其從 v6
完全遷移到 v7
。
若要安裝 codemod,請執行
npm install jscodeshift @wdio/codemod
提交:
- 安裝 codemod 相依性 [6ec9e52]
升級 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.json
和 package-lock.json
應會更新。注意:這些是範例專案所使用的相依性,您的可能不同。
提交:
- 已更新的相依性 [7097ab6]
轉換設定檔
好的第一步是從設定檔開始。在 WebdriverIO v7
中,我們不再需要手動註冊任何編譯器。事實上,它們需要被移除。這可以透過 codemod 完全自動完成
npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./wdio.conf.js
codemod 尚不支援 TypeScript 專案。請參閱@webdriverio/codemod#10
。我們正在努力盡快實作對它的支援。如果您正在使用 TypeScript,請參與其中!
提交:
- 轉換設定檔 [6015534]
更新步驟定義
如果您正在使用 Jasmine 或 Mocha,您已經完成此處。最後一步是將 Cucumber.js 匯入從 cucumber
更新為 @cucumber/cucumber
。這也可以透過 codemod 自動完成
npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./src/e2e/*
就是這樣!無需進行更多變更 🎉
提交:
- 轉換步驟定義 [8c97b90]
結論
我們希望本教學能稍微引導您完成 WebdriverIO v7
的遷移過程。社群持續改進 codemod,同時在各個組織中與各個團隊一起測試它。如果您有任何回饋,請隨時提出問題;如果您在遷移過程中遇到困難,請發起討論。