Фреймворки
WebdriverIO Runner має вбудовану підтримку Mocha, Jasmine і Cucumber.js. Ви також можете інтегрувати його зі сторонніми фреймворками з відкритим кодом, такими як Serenity/JS.
Для інтеграції WebdriverIO з тестовим фреймворком вам потрібен пакет адаптера, доступний в NPM. Зауважте, що пакет адаптера повинен бути встановлений в тому ж місці, де встановлений WebdriverIO. Тому, якщо ви встановили WebdriverIO глобально, переконайтеся, що пакет адаптера також встановлено глобально.
Інтеграція WebdriverIO з тестовим фреймворком дозволяє вам отримати доступ до екземпляра WebDriver, використовуючи глобальну змінну browser
у ваших файлах специфікацій або визначеннях кроків.
Зверніть увагу, що WebdriverIO також потурбується про створенн я та завершення сеансу Selenium, тому вам не потрібно робити це
самостійно.
Використання Mocha
Спочатку встановіть пакет адаптера з 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 надає бібліотеку тверджень, яка вбудована і з якою ви можете почати працювати відразу:
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
delay
За тримка виконання кореневого набору.
Тип: boolean
За замовчуванням: false
fgrep
Фільтр тестів за заданим рядком.
Тип: string
За замовчуванням: null
forbidOnly
Тести з позначкою only
призводять до невдачі набору.
Тип: boolean
За замовчуванням: false
forbidPending
Відкладені тести призводять до невдачі набору.
Тип: boolean
За замовчуванням: false
fullTrace
Повний стек викликів при невдачі.
Тип: boolean
За замовчуванням: false
global
Змінні, які очікуються в глобальній області.
Тип: string[]
За замовчуванням: []
grep
Фільтр тестів за заданим регулярним виразом.
Тип: RegExp|string
За замовчуванням: null
invert
Інвертувати відповідності фільтра тестів.
Тип: boolean
За замовчуванням: false
retries
Кількість спроб повторного запуску невдалих тестів.
Тип: number
За замовчуванням: 0
timeout
Значення порогу таймауту (в мс).
Тип: number
За замовчуванням: 30000