از نسخه ۶ به نسخه ۷
این آموزش برای افرادی است که هنوز از نسخه 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 استفاده میکنید، لطفاً مشارکت کنید!
کامیتها:
- ترجمه فایل پیکربندی [6015534]
بهروزرسانی تعاریف مراحل
اگر از Jasmine یا Mocha استفاده میکنید، کار شما اینجا تمام شده است. آخرین مرحله بهروزرسانی وارداتهای Cucumber.js از cucumber
به @cucumber/cucumber
است. این کار نیز میتواند از طریق codemod به صورت خودکار انجام شود:
npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./src/e2e/*
همین! دیگر تغییری لازم نیست 🎉
کامیتها:
- ترجمه تعاریف مراحل [8c97b90]
نتیجهگیری
امیدواریم این آموزش کمی شما را در فرآیند مهاجرت به WebdriverIO v7
راهنمایی کند. جامعه همچنان به بهبود codemod ادامه میدهد و آن را با تیمهای مختلف در سازمانهای مختلف آزمایش میکند. اگر بازخوردی دارید، از ایجاد یک مشکل دریغ نکنید یا اگر در طول فرآیند مهاجرت با مشکلی مواجه شدید، یک بحث را شروع کنید.