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. Теперь ваша задача будет предоставлять подробные результаты тестов с историческими графиками, информацию о стеке вызовов на неудачных заданиях и список команд с данными, которые использовались в каждом тесте.