Фреймворки
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 поддерживает интерфейсы Mocha BDD (по умолчанию), TDD и QUnit interfaces.
Если вы хотите писать спецификации в стиле 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[]
По умолчанию: []