Фреймворки
WebdriverIO Runner має вбудовану підтримку Mocha, Jasmine і Cucumber.js. Ви також можете інтегрувати його зі сторонніми фреймворками з відкритим кодом, такими як Serenity/JS.
Для інтеграції WebdriverIO з тестовим фреймворком вам потрібен пакет адаптера, доступний в NPM. Зауважте, що пакет адаптера повинен бути встановлений в тому ж місці, де встановлений WebdriverIO. Тому, якщо ви встановили WebdriverIO глобально, переконайтеся, що пакет адаптера також встановлено глобально.
Інтеграція WebdriverIO з тестовим фреймворком дозволяє вам отримати доступ до екземпляра WebDriver, використовуючи глобальну змінну browser
у ваших файлах специфікацій або визначеннях кроків.
Зверніть увагу, що WebdriverIO також потурбується про створення та завершення сеансу Selenium, тому вам не потрібно робити це
самостійно.
Використання Mocha
Спочатку встановіть пакет адаптера з NPM:
- npm
- Yarn
- pnpm
- Bun
npm install @wdio/mocha-framework --save-dev
yarn add @wdio/mocha-framework --dev
pnpm add @wdio/mocha-framework --save-dev
bun add @wdio/mocha-framework --dev
За замовчуванням WebdriverIO надає бібліотеку тверджень, яка вбудована і з якою ви можете почати працювати відразу:
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.
Якщо ви хочете писати свої тести в стилі 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 не підтримує застаріле використання зворотних викликів done в Mocha:
it('should test something', (done) => {
done() // виникає помилка "done is not a function"
})
Опції Mocha
Наступні опції можна застосувати у вашому wdio.conf.js для налаштування вашого середовища Mocha. Примітка: не всі опції підтримуються, наприклад, застосування опції parallel призведе до помилки, оскільки WDIO тестовий запускач має власний спосіб запуску тестів паралельно. Ви можете передавати ці опції фреймворку як аргументи, наприклад:
wdio run wdio.conf.ts --mochaOpts.grep "my test" --mochaOpts.bail --no-mochaOpts.checkLeaks
Це передасть наступні опції Mocha:
{
grep: ['my-test'],
bail: true
checkLeacks: false
}
Підтримуються наступні опції Mocha:
require
Опція require корисна, коли ви хочете додати або розширити деяку базову функціональність (опція фреймворку WebdriverIO).
Тип: string|string[]
За замовчування м: []
compilers
Використовуйте дані модулі для компіляції файлів. Компілятори будуть включені перед вимогами (опція фреймворку WebdriverIO).
Тип: string[]
За замовчуванням: []
allowUncaught
Поширювати неперехоплені помилки.
Тип: boolean
За замовчуванням: false
bail
Припинити виконання після першого невдалого тесту.
Тип: boolean
За замовчуванням: false
checkLeaks
Перевіряти наявність витоків глобальних змінних.
Тип: boolean
За замовчуванням: false