Репортер CucumberJS JSON
wdio-cucumberjs-json-reporter является сторонним пакетом, для получения дополнительной информации смотрите GitHub | npm
WDIO репортер, который создает файлы CucumberJS JSON для WebdriverIO v8 и выше.
Что он делает
Этот репортер генерирует файл Cucumber JSON для каждой тестируемой функциональности. JSON-файл можно использовать с любым отчетом, который вы хотите использовать, например, multiple-cucumber-html-reporter.
Он также добавляет метаданные о запущенном экземпляре в файл функциональности и, наконец, дает вам возможность добавлять вложения в JSON-вывод.
Установка
Самый простой способ - это держать wdio-cucumberjs-json-reporter
как devDependency в вашем package.json
.
{
"devDependencies": {
"wdio-cucumberjs-json-reporter": "^5.0.0"
}
}
Вы можете просто сделать это с помощью:
npm install wdio-cucumberjs-json-reporter --save-dev
и он будет автоматически добавлен в ваш package.json
Инструкции по установке WebdriverIO
можно найти здесь.
Конфигурация
Настройте выходной каталог и язык в вашем файле wdio.conf.js:
export const config = {
// ...
reporters: [
// Вот так с параметрами по умолчанию, смотрите параметры ниже
'cucumberjs-json',
// ИЛИ так, если вы хотите установить папку и язык
[ 'cucumberjs-json', {
jsonFolder: '.tmp/new/',
language: 'en',
},
],
],
// ...
}
НЕ ИСПОЛЬЗУЙТЕ ОБА СПОСОБА ДОБАВЛЕНИЯ РЕПОРТЕРА, ЭТО ПРОСТО ПРИМЕР!
Опции
jsonFolder
- Тип:
String
- Обязательно: Нет
- По умолчанию:
.tmp/json/
Каталог, в котором будут храниться JSON-файлы, созданные этим отчетом, относительно места запуска скрипта.
Примечание: Если вы используете npm-скрипт из командной строки, например, npm run test
, то jsonFolder
будет относительно пути,
откуда выполняется скрипт. Выполнение из корня вашего проекта также создаст jsonFolder
в корне вашего проекта.
language
- Тип:
String
- Обязательно: Нет
- По умолчанию:
en
Язык, на котором написаны сценарии Gherkin (по умолчанию английский). Список кодов языков и их ключевых слов можно найти здесь.
disableHooks
- Тип:
boolean
- Обязательно: Нет
- По умолчанию:
false
Детали хуков не будут частью генерации, если это свойство установлено на true
.
reportFilePerRetry
- Тип:
boolean
- Обязательно: Нет
- По умолчанию:
true
Когда спецификация повторяется, отчет будет добавлен к существующему файлу отчета из предыдущих попыток, если это свойство установлено на false
.
Пример:
['cucumberjs-json', { jsonFolder: '.tmp/new/', language: 'en', disableHooks:true}]
Метаданные
Примечание:
В настоящее время это не поддерживается при использовании WebdriverIO V6, WebdriverIO V5 по-прежнему поддерживает это, и WebdriverIO V7 снова поддерживает это
Как было сказано, этот отчет может автоматически сохранять метаданные текущей машины/устройства, на котором выполнялась функциональность.
Чтобы настроить это, вы можете добавить следующий объект в ваши capabilities
// Пример wdio.conf.js
export const config = {
//..
capabilities: [
{
browserName: 'chrome',
// Добавьте это
'cjson:metadata': {
// Для браузера
browser: {
name: 'chrome',
version: '58',
},
// для приложения
app: {
name: 'name.of.app.ipa',
version: '1.2.3',
},
device: 'MacBook Pro 15',
platform: {
name: 'OSX',
version: '10.12.6'
}
},
},
],
};
Объект метаданных должен иметь префикс
cjson
, иначе он не будет работать!
Значения метаданных
metadata.app.name
- Тип:
string
например: Имя приложения.