از نسخه ۶ به نسخه ۷
این آموزش برای افرادی است که هنوز از نسخه v6
WebdriverIO استفاده میکنند و قصد مهاجرت به نسخه v7
را دارند. همانطور که در پست وبلاگ انتشار ما ذکر شده است، تغییرات عمدتاً در زیر پوسته هستند و ارتقا باید فرآیندی مستقیم باشد.
اگر از WebdriverIO نسخه v5
یا پایینتر استفاده میکنید، لطفاً ابتدا به نسخه v6
ارتقا دهید. لطفاً راهنمای مهاجرت v6 ما را بررسی کنید.
اگرچه دوست داریم یک فرآیند کاملاً خودکار برای این کار داشته باشیم، اما واقعیت متفاوت است. هر کسی پیکربندی متفاوتی دارد. هر مرحله باید به عنوان راهنمایی دیده شود و نه دستورالعمل گام به گام. اگر در مهاجرت مشکلی دارید، از تماس با ما دریغ نکنید.
راهاندازی
مشابه سایر مهاجرتها، میتوانیم از codemod WebdriverIO استفاده کنیم. برای ای ن آموزش، از یک پروژه نمونه که توسط یکی از اعضای جامعه ارسال شده است استفاده میکنیم و آن را به طور کامل از 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 استفاده میکنید، لطفاً مشارکت کنید!