از نسخه ۵ به نسخه ۶
این آموزش برای افرادی است که هنوز از نسخه v5
WebdriverIO استفاده میکنند و میخواهند به نسخه 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
را برای جلسات Chrome WebDriver بهlaunchChromeApp
تغییر نام دادیم
اگر از WebdriverIO v4
یا پایینتر استفاده میکنید، لطفاً ابتدا به v5
ارتقا دهید.
در حالی که ما دوست داریم یک فرآیند کاملاً خودکار برای این کار داشته باشیم، واقعیت متفاوت است. هر کسی تنظیمات متفاوتی دارد. هر مرحله باید به عنوان راهنمایی دیده شود و نه دستورالعمل قدم به قدم. اگر در مهاجرت با مشکلی مواجه شدید، تردید نکنید و با ما تماس بگیرید.
راهاندازی
مشابه سایر مهاجرتها، میتوانیم از codemod 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 موجود را برای تمام بستههای اصلی WebdriverIO نصب کنید. برای بستههای انجمن این ممکن است از بسته به بسته متفاوت باشد. در اینجا توصیه میکنیم تغییرات را برای اطلاعات در مورد اینکه کدام نسخه هنوز با v6 سازگار است، بررسی کنید.
تبدیل فایل پیکربندی
یک قدم خوب اول شروع با فایل پیکربندی است. تمام تغییرات شکننده را میتوان با استفاده از codemod به طور کاملاً خودکار حل کرد:
npx jscodeshift -t ./node_modules/@wdio/codemod/v6 ./wdio.conf.js