فریمورکها
WebdriverIO Runner از Mocha، Jasmine، و Cucumber.js به صورت پیشفرض پشتیبانی میکند. شما همچنین میتوانید آن را با فریمورکهای متنباز شخص ثالث، مانند Serenity/JS ادغام کنید.
برای ادغام WebdriverIO با یک فریمورک تست، شما نیاز به یک بسته adapter دارید که در NPM در دسترس باشد. توجه داشته باشید که بسته adapter باید در همان محلی نصب شود که WebdriverIO نصب شده است. بنابراین، اگر WebdriverIO را به صورت جهانی نصب کردهاید، مطمئن شوید که بسته adapter را نیز به صورت جهانی نصب کنید.
ادغام WebdriverIO با یک فریمورک تست به شما امکان میدهد به نمونه WebDriver با استفاده از متغیر جهانی browser
در فایلهای spec یا تعاریف قدمهای خود دسترسی داشته باشید.
توجه کنید که WebdriverIO همچنین مسئول ایجاد و پایان دادن به جلسه Selenium خواهد بود، بنابراین نیازی نیست که خودتان این کار را انجام دهید.
استفاده از Mocha
ابتدا، بسته adapter را از NPM نصب کنید:
- npm
- Yarn
- pnpm
npm install @wdio/mocha-framework --save-dev
yarn add @wdio/mocha-framework --dev
pnpm add @wdio/mocha-framework --save-dev
به طور پیشفرض WebdriverIO یک کتابخانه assertion ارائه میدهد که به صورت داخلی ساخته شده و میتوانید بلافاصله از آن استفاده کنید:
describe('my awesome website', () => {
it('should do some assertions', async () => {
await browser.url('https://webdriver.io')
await expect(browser).toHaveTitle('WebdriverIO · Next-gen browser and mobile automation test framework for Node.js | WebdriverIO')
})
})
WebdriverIO از رابطهای BDD
(پیشفرض)، TDD
، و QUnit
Mocha پشتیبانی میکند.
اگر میخواهید specهای خود را با سبک TDD بنویسید، ویژگی ui
را در تنظیمات mochaOpts
خود به tdd
تنظیم کنید. اکنون فایلهای تست شما باید به صورت زیر نوشته شوند:
suite('my awesome website', () => {
test('should do some assertions', async () => {
await browser.url('https://webdriver.io')
await expect(browser).toHaveTitle('WebdriverIO · Next-gen browser and mobile automation test framework for Node.js | WebdriverIO')
})
})
اگر میخواهید تنظیمات خاص Mocha دیگری را تعریف کنید، میتوانید این کار را با کلید mochaOpts
در فایل پیکربندی خود انجام دهید. لیستی از تمام گزینهها را میتوانید در وبسایت پروژه Mocha پیدا کنید.
نکته: WebdriverIO از استفاده منسوخ شده از callback های done
در Mocha پشتیبانی نمیکند:
it('should test something', (done) => {
done() // خطای "done is not a function" را میاندازد
})
گزینههای Mocha
گزینههای زیر را میتوان در wdio.conf.js
شما اعمال کرد تا محیط Mocha خود را پیکربندی کنید. نکته: همه گزینهها پشتیبانی نمیشوند، مثلاً اعمال گزینه parallel
منجر به خطا میشود زیرا testrunner WDIO روش خاص خود را برای اجرای تستها به صورت موازی دارد. میتوانید این گزینههای فریمورک را به عنوان آرگومان ارسال کنید، به عنوان مثال:
wdio run wdio.conf.ts --mochaOpts.grep "my test" --mochaOpts.bail --no-mochaOpts.checkLeaks
این دستور گزینههای Mocha زیر را ارسال میکند:
{
grep: ['my-test'],
bail: true
checkLeacks: false
}