Jenkins
WebdriverIO пропонує тісну інтеграцію з системами CI, такими як Jenkins. За допомогою репортера junit
ви можете легко відлагоджувати ваші тести, а також відстежувати їх результати. Інтеграція досить проста.
- Встановіть тестовий репортер
junit
:$ npm install @wdio/junit-reporter --save-dev
) - Оновіть вашу конфігурацію, щоб зберігати результати XUnit у місці, де Jenkins зможе їх знайти,
(та вкажіть репортер
junit
):
// wdio.conf.js
module.exports = {
// ...
reporters: [
'dot',
['junit', {
outputDir: './'
}]
],
// ...
}
Вибір фреймворка залежить від вас. Звіти будуть подібними. Для цього туторіалу ми використовуватимемо Jasmine.
Після того, як ви написали кілька тестів, ви можете налаштувати нову задачу в Jenkins. Дайте їй назву та опис:
Потім переконайтеся, що він завжди отримує найновішу версію вашого репозиторію:
Тепер важлива частина: Створіть крок build
для виконання команд оболонки. Крок build
повинен будувати ваш проект. Оскільки цей демо-проект лише тестує зовнішній додаток, вам не потрібно нічого будувати. Просто встановіть залежності node і виконайте команду npm test
(яка є псевдонімом для node_modules/.bin/wdio test/wdio.conf.js
).
Якщо ви встановили плагін, такий як AnsiColor, але логи все ще не кольорові, запустіть тести з змінною середовища FORCE_COLOR=1
(наприклад, FORCE_COLOR=1 npm test
).
Після вашого тесту ви захочете, щоб Jenkins відстежував ваш звіт XUnit. Для цього потрібно додати дію після збірки під назвою "Publish JUnit test result report".
Ви також можете встановити зовнішній плагін XUnit для відстеження ваших звітів. JUnit поставляється з базовою інсталяцією Jenkins і наразі є достатнім.
Відповідно до конфігураційного файлу, звіти XUnit будуть збережені в кореневому каталозі проекту. Ці звіти є XML-файлами. Отже, все, що вам потрібно зробити для відстеження звітів, - це вказати Jenkins на всі XML-файли у вашому кореневому каталозі:
Ось і все! Ви налаштували Jenkins для запуску ваших завдань WebdriverIO. Ваше завдання тепер надаватиме детальні результати тестів з історичними діаграмами, інформацією про стек викликів на невдалих завданнях та списком команд з корисним навантаженням, які були використані в кожному тесті.