वी5 से वी6 तक
यह ट्यूटोरियल उन लोगों के लिए है जो अभी भी WebdriverIO के v5
का उपयोग कर रहे हैं और v6
या WebdriverIO के नवीनतम संस्करण में माइग्रेट करना चाहते हैं। जैसा कि हमारे रिलीज़ ब्लॉग पोस्ट में उल्लेख किया गया है, इस संस्करण के उन्नयन के लिए परिवर्तनों को निम्नानुसार सारांशित किया जा सकता है:
-
हमने कुछ आदेशों के लिए पैरामीटर समेकित किए हैं (उदाहरन के लिए
newWindow
,react$
,react$$
,waitUntil
,dragAndDrop
,moveTo
,waitForDisplayed
,waitForEnabled
,waitForExist
) और चले गए एक वस्तु में सभी वैकल्पिक पैरामीटर, उदाहरण के लिए// v5
browser.newWindow(
'https://webdriver.io',
'WebdriverIO window',
'width=420,height=230,resizable,scrollbars=yes,status=1'
)
// v6
browser.newWindow('https://webdriver.io', {
windowName: 'WebdriverIO window',
windowFeature: 'width=420,height=230,resizable,scrollbars=yes,status=1'
}) -
सेवा सूची में स्थानांतरित सेवाओं के लिए कॉन्फ़िगरेशन, उदाहरण के लिए
// v5
exports.config = {
services: ['sauce'],
sauceConnect: true,
sauceConnectOpts: { foo: 'bar' },
}
// v6
exports.config = {
services: [['sauce', {
sauceConnect: true,
sauceConnectOpts: { foo: 'bar' }
}]],
} -
सरलीकरण उद्देश्यों के लिए कुछ सेवा विकल्पों का नाम बदला गया
-
हमने क्रोम वेबड्राइवर सत्रों के लिए कमांड
launchApp
सेlaunchChromeApp
का नाम बदल दिया
यदि आप WebdriverIO v4
या नीचे का उपयोग कर रहे हैं, तो कृपया पहले v5
में अपग्रेड करें।
जबकि हम इसके लिए पूरी तरह से स्वचालित प्रक्रिया चाहते हैं, वास्तविकता अलग दिखती है। हर किसी का अलग सेटअप होता है। हर कदम को मार्गदर्शन के रूप में देखा जाना चाहिए और कदम दर कदम निर्देश की तरह नहीं। अगर आपको माइग्रेशन से जुड़ी कोई समस्या है, तो बेझिझक हमसे संपर्क करें.
सेटअप
अन्य माइग्रेशन के समान हम WebdriverIO codemodका उपयोग कर सकते हैं। कोडमोड को स्थापित करने के लिए, दौड़ें:
npm install jscodeshift @wdio/codemod
WebdriverIO निर्भरता को अपग्रेड करें
यह देखते हुए कि सभी WebdriverIO संस्करण एक-दूसरे से तंग हैं, हमेशा एक विशिष्ट टैग में अपग्रेड करना सबसे अच्छा होता है, उदाहरण के लिए 6.12.0
। यदि आप v5
से सीधे v7
में अपग्रेड करने का निर्णय लेते हैं तो आप टैग को छोड़ सकते हैं और सभी पैकेजों के नवीनतम संस्करण स्थापित कर सकते हैं। ऐसा करने के लिए हम सभी WebdriverIO संबंधित निर्भरताओं को हमारे package.json
से कॉपी करते हैं और उन्हें इसके माध्यम से पुनः इंस्टॉल करते हैं:
npm i --save-dev @wdio/allure-reporter@6 @wdio/cli@6 @wdio/cucumber-framework@6 @wdio/local-runner@6 @wdio/spec-reporter@6 @wdio/sync@6 wdio-chromedriver-service@6 webdriverio@6
आमतौर पर WebdriverIO निर्भरताएँ देव निर्भरताओं का हिस्सा होती हैं, यह आपकी परियोजना के आधार पर भिन्न हो सकती है। इसके बाद आपका package.json
और package-lock.json
अपडेट होना चाहिए। नोट: ये निर्भरता के उदाहरण हैं, आपके भिन्न हो सकते हैं। कॉल करके सुनिश्चित करें कि आपको नवीनतम v6 संस्करण मिल गया है, जैसे:
npm show webdriverio versions
सभी कोर वेबड्राइवरआईओ पैकेज के लिए उपलब्ध नवीनतम संस्करण 6 को स्थापित करने का प्रयास करें। सामुदायिक पैकेजों के लिए यह एक पैकेज से दूसरे पैकेज में भिन्न हो सकता है। यहां हम जानकारी के लिए चेंजलॉग की जांच करने की सलाह देते हैं कि कौन सा संस्करण अभी भी v6 के साथ संगत है।
कॉन्फ़िग फ़ाइल को रूपांतरित करें
एक अच्छा पहला कदम कॉन्फिग फाइल के साथ शुरू करना है। सभी ब्रेकिंग परिवर्तनों को स्वचालित रूप से कोडमॉड का उपयोग करके हल किया जा सकता है:
npx jscodeshift -t ./node_modules/@wdio/codemod/v6 ./wdio.conf.js
कोडमॉड अभी तक टाइपस्क्रिप्ट परियोजनाओं का समर्थन नहीं करता है। देखें @webdriverio/codemod#10
। हम जल्द ही इसके लिए समर्थन लागू करने के लिए काम कर रहे हैं। यदि आप टाइपस्क्रिप्ट का उपयोग कर रहे हैं तो कृपया शामिल हों!
विशिष्ट फ़ाइलें और पृष्ठ ऑब्जेक्ट अपडेट करें
सभी आदेश परिवर्तनों को अद्यतन करने के लिए अपनी सभी e2e फ़ाइलों पर कोडमॉड चलाएँ जिनमें WebdriverIO कमांड शामिल हैं, जैसे:
npx jscodeshift -t ./node_modules/@wdio/codemod/v6 ./e2e/*
इतना ही! कोई और परिवर्तन आवश्यक नहीं है 🎉
निष्कर्ष
हम आशा करते हैं कि यह ट्यूटोरियल WebdriverIO v6
में माइग्रेशन प्रक्रिया के माध्यम से आपका थोड़ा सा मार्गदर्शन करेगा। हम पुरजोर अनुशंसा करते हैं कि नवीनतम संस्करण में अपग्रेड करना जारी रखें क्योंकि लगभग कोई ब्रेकिंग बदलाव नहीं होने के कारण v7
में अपडेट करना तुच्छ है। V7 में अपग्रेड करने के लिए कृपया माइग्रेशन गाइड
देखें।
समुदाय विभिन्न संगठनों में विभिन्न टीमों के साथ परीक्षण करते समय कोडमोड में सुधार करना जारी रखता है। कोई मुद्दा उठाने में संकोच न करें [यदि आपके पास फीडबैक है या चर्चा शुरू](https://github.com/webdriverio/codemod/issues/new) यदि आप माइग्रेशन प्रक्रिया के दौरान संघर्ष करते हैं।