انتقل إلى المحتوى الرئيسي

من v6 إلى v7

هذا الدليل مخصص للأشخاص الذين ما زالوا يستخدمون v6 من WebdriverIO ويرغبون في الترقية إلى v7. كما ذكرنا في منشور المدونة الخاص بالإصدار، فإن التغييرات هي في الغالب تحت الغطاء وينبغي أن تكون عملية الترقية مباشرة.

معلومات

إذا كنت تستخدم WebdriverIO v5 أو أقل، يرجى الترقية إلى v6 أولاً. يرجى الاطلاع على دليل الترقية إلى v6.

بينما نود أن نقدم عملية آلية بالكامل لهذا، إلا أن الواقع مختلف. كل شخص لديه إعداد مختلف. يجب اعتبار كل خطوة كدليل وليس كتعليمات خطوة بخطوة. إذا واجهت مشاكل في عملية الترقية، لا تتردد في الاتصال بنا.

الإعداد

مشابه للترقيات الأخرى، يمكننا استخدام codemod الخاص بـ WebdriverIO. في هذا الدليل، سنستخدم مشروع نموذجي مقدم من أحد أعضاء المجتمع وسنقوم بترقيته بالكامل من 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.json و package-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/*

هذا كل شيء! لا حاجة لمزيد من التغييرات 🎉

الالتزامات:

  • ترجمة تعريفات الخطوات [8c97b90]

الخلاصة

نأمل أن يوجهك هذا الدليل قليلاً خلال عملية الترقية إلى WebdriverIO v7. يواصل المجتمع تحسين codemod أثناء اختباره مع فرق مختلفة في منظمات متنوعة. لا تتردد في إثارة مشكلة إذا كان لديك تعليقات أو بدء مناقشة إذا كنت تواجه صعوبة أثناء عملية الترقية.

Welcome! How can I help?

WebdriverIO AI Copilot