Главный отчет генерируется не для всех пакетов с HTML REPORTER (wdio5)
У меня есть настройка конфигурации в "wdio.conf.js" для "rpii html reporter". Но это не генерация генерального отчета для всех апартаментов.
const { ReportAggregator, HtmlReporter } = require('@rpii/wdio-html-reporter');
exports.config = {
reporters: ['spec', [HtmlReporter, {
debug: true,
outputDir: './reports/html-reports/',
filename: 'report.html',
reportTitle: 'Test Report Title',
showInBrowser:true
}
]],
onPrepare: function (config, capabilities) {
let reportAggregator = new ReportAggregator({
outputDir: './reports/html-reports/',
filename: 'master-report.html',
reportTitle: 'Master Report'
});
reportAggregator.clean() ;
global.reportAggregator = reportAggregator;
},
onComplete: function(exitCode, config, capabilities, results) {
(async () => {
await global.reportAggregator.createReport( {
config: config,
capabilities: capabilities,
results : results
});
})();
}
}
Я ожидаю одного отчета с несколькими тестами. Но я получаю несколько отчетов для каждого теста.
0 ответов
Тема довольно старая, но я только что рассмотрел аналогичную проблему в своем проекте - вообще не могу создать отчет. В большинстве случаев это просто вопрос конфигурации, но нет твердого документа или руководства для этой болезненной конфигурации репортера wdio. Итак, вот я, после целой недели исследований и тестирования, это жизнеспособная конфигурация, которая вам понадобится, и другие ребята, которые столкнулись / столкнулись с той же проблемой.
Во-первых, предположим, что структура вашего проекта будет похожа на дерево ниже
.
├── some_folder1
│ ├── some_sub_folder1
│ ├── some_sub_folder2
├── some_folder2
├── @report
│ ├── html-reports
│ ├── template
│ │ ├── sanity-mobile-report-template.hbs
│ │ ├── wdio-html-template.hbs
├── specs
│ ├── test1
│ │ ├── test1.doSuccess.spec.js
│ │ ├── test1.doFail.spec.js
│ ├── test2
│ │ ├── test2.doSuccess.spec.js
│ │ ├── test2.doFail.spec.js
├── node-modules
├── package.json
Во-вторых, у вас должны быть шаблоны для отчетов, в моем случае он находится в @report/template.
wdio-html-template.hbs
и
sanity-mobile-report-template.hbs
за
HtmlReporter
и
ReportAggregator
соответственно. Как сообщил Рич Питерс, выше
Каждый пакет выполняется индивидуально, и создаются файлы html и json. wdio не агрегирует комплекты, поэтому агрегатор отчетов собирает все файлы и создает агрегированный файл по завершении.
В
HtmlReporter
на самом деле нужно будет найти его шаблон для генерации содержимого для каждого файла.spec, тогда потребуется другой шаблон, запрошенный
ReportAggregator
В-третьих, вам нужны правильные спецификации и объявление наборов в конфигурации wdio, общие для спецификаций и файл специально для наборов.
Наконец, запустите тест, используя--suite
параметр, ссылка на руководство wdio
Моя окончательная структура проекта будет выглядеть так, обратите внимание на изменения
.
├── some_folder1
│ ├── some_sub_folder1
│ ├── some_sub_folder2
├── some_folder2
├── @report
│ ├── html-reports
│ ├── ├── screenshots
│ ├── ├── suite-0-0
│ ├── ├── ├── 0-0
│ ├── ├── ├── ├── report.html
│ ├── ├── ├── ├── report.json
│ ├── ├── ├── 0-1
│ ├── ├── ├── ├── report.html
│ ├── ├── ├── ├── report.json
│ ├── ├── master-report.html
│ ├── ├── master-report.json
│ ├── template
│ │ ├── sanity-mobile-report-template.hbs
│ │ ├── wdio-html-template.hbs
├── specs
│ ├── test1
│ │ ├── test1.doSuccess.spec.js
│ │ ├── test1.doFail.spec.js
│ ├── test2
│ │ ├── test2.doSuccess.spec.js
│ │ ├── test2.doFail.spec.js
├── node-modules
├── package.json
Каждый набор выполняется индивидуально, и создаются файлы html и json. wdio не объединяет наборы, поэтому это выполняется агрегатором отчетов, который собирает все файлы и создает объединенный файл по завершении.