Відлагодження
Відлагодження значно ускладнюється, коли кілька процесів запускають десятки тестів у багатьох браузерах.
Для початку, надзвичайно корисно обмежити паралелізм, встановивши maxInstances
на 1
, і націлюватися лише на ті специфікації та браузери, які потрібно відлагоджувати.
У wdio.conf
:
export const config = {
// ...
maxInstances: 1,
specs: [
'**/myspec.spec.js'
],
capabilities: [{
browserName: 'firefox'
}],
// ...
}
Команда Debug
У багатьох випадках ви можете використовувати browser.debug()
, щоб призупинити тест і перевірити браузер.
Інтерфейс командного рядка також перейде в режим REPL. Цей режим дозволяє експериментувати з командами та елементами на сторінці. У режимі REPL ви можете отримати доступ до об'єкта browser
—або функцій $
та $$
—так само, як у тестах.
При використанні browser.debug()
вам, ймовірно, знадобиться збільшити час очікування тест-ранера, щоб запобігти провалу тесту через занадто довге виконання. Наприклад:
У wdio.conf
:
jasmineOpts: {
defaultTimeoutInterval: (24 * 60 * 60 * 1000)
}
Перегляньте timeouts для отримання додаткової інформації про те, як це зробити з використанням інших фреймворків.
Щоб продовжити тести після відлагодження, у командній оболонці використовуйте комбінацію клавіш ^C
або команду .exit
.
Динамічна конфігурація
Зауважте, що wdio.conf.js
може містити JavaScript. Оскільки ви, ймовірно, не хочете постійно змінювати значення таймауту на 1 день, часто буває корисно змінювати ці налаштування з командного рядка, використовуючи змінну середовища.
Використовуючи цю техніку, ви можете динамічно змінювати конфігурацію:
const debug = process.env.DEBUG
const defaultCapabilities = ...
const defaultTimeoutInterval = ...
const defaultSpecs = ...
export const config = {
// ...
maxInstances: debug ? 1 : 100,
capabilities: debug ? [{ browserName: 'chrome' }] : defaultCapabilities,
execArgv: debug ? ['--inspect'] : [],
jasmineOpts: {
defaultTimeoutInterval: debug ? (24 * 60 * 60 * 1000) : defaultTimeoutInterval
}
// ...
}
Потім ви можете додати префікс debug
до команди wdio
:
$ DEBUG=true npx wdio wdio.conf.js --spec ./tests/e2e/myspec.test.js
...і відлагоджувати файл специфікації за допомогою DevTools!
Відлагодження з Visual Studio Code (VSCode)
Якщо ви хочете відлагоджувати свої тести з точками зупинки в останній версії VSCode, у вас є два варіанти запуску відладчика, з яких варіант 1 є найпростішим методом:
- автоматичне приєднання відладчика
- приєднання відладчика за допомогою файлу конфігурації
VSCode Toggle Auto Attach
Ви можете автоматично приєднати відладчик, виконавши ці кроки у VSCode:
- Натисніть CMD + Shift + P (Linux та MacOS) або CTRL + Shift + P (Windows)
- Введіть "attach" у поле вводу
- Виберіть "Debug: Toggle Auto Attach"
- Виберіть "Only With Flag"
Це все! Тепер, коли ви запускаєте свої тести (пам'ятайте, що вам потрібно встановити прапор --inspect у вашій конфігурації, як показано раніше), він автоматично запустить відладчик і зупиниться на першій точці зупинки, яку він досягне.