Bamboo
WebdriverIO предлагает тесную интеграцию с CI-системами, такими как Bamboo. С помощью репортеров JUnit или Allure вы можете легко отлаживать свои тесты, а также отслеживать результаты тестирования. Интеграция довольно проста.
- Установите JUnit репортер:
$ npm install @wdio/junit-reporter --save-dev
) - Обновите вашу конфигурацию, чтобы сохранять результаты JUnit там, где Bamboo может их найти (и укажите репортер
junit
):
// wdio.conf.js
module.exports = {
// ...
reporters: [
'dot',
['junit', {
outputDir: './testresults/'
}]
],
// ...
}
Примечание: Всегда хорошей практикой является хранение результатов тестов в отдельной папке, а не в корневой директории.
// wdio.conf.js - Для тестов, выполняющихся параллельно
module.exports = {
// ...
reporters: [
'dot',
['junit', {
outputDir: './testresults/',
outputFileFormat: function (options) {
return `results-${options.cid}.xml`;
}
}]
],
// ...
}
Отчеты будут аналогичными для всех фреймворков, и вы можете использовать любой из них: Mocha, Jasmine или Cucumber.
К этому моменту мы предполагаем, что у вас уже написаны тесты, результаты генерируются в папке ./testresults/
, и ваш Bamboo запущен и работает.
Интеграция ваших тестов в Bamboo
-
Откройте ваш проект Bamboo
Создайте новый план, привяжите свой репозиторий (убедитесь, что он всегда указывает на новейшую версию вашего репозитория) и создайте этапы
Я буду использовать этап и задачу по умолчанию. В вашем случае вы можете создать собственные этапы и задачи
-
Откройте вашу тестовую задачу и создайте задания для запуска тестов в Bamboo
Задание 1: Выгрузка исходного кода
Задание 2: Запустите ваши тесты
npm i && npm run test
. Вы можете использовать задание Script и Shell Interpreter для выполнения вышеуказанных команд (это сгенерирует результаты тестов и сохранит их в папке./testresults/
)Задание: 3 Добавьте задание jUnit Parser для анализа сохраненных результатов тестов. Укажите здесь директорию с результатами тестов (вы также можете использовать шаблоны в стиле Ant)
Примечание: Убедитесь, что вы размещаете задание анализа результатов в разделе Final, чтобы оно всегда выполнялось, даже если задание с тестами завершилось с ошибкой
Задание: 4 (опционально) Чтобы ваши результаты тестов не смешивались со старыми файлами, вы можете создать задание для удаления папки
./testresults/
после успешного анализа в Bamboo. Вы можете добавить скрипт оболочки, напримерrm -f ./testresults/*.xml
для удаления результатов илиrm -r testresults
для удаления всей папки
После завершения вышеописанной "ракетной науки", включите план и запустите его. Ваш конечный результат будет выглядеть так:
Успешный тест
Неудачный тест
Неудачный и исправленный
Ура!! Вот и всё. Вы успешно интегрировали свои тесты WebdriverIO в Bamboo.