我已在“ wdio.conf.js”中为“ rpii html记者”设置了配置。但是它不会为所有套件生成主报告。
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 :(得分:3)
主题是相当老的atm,但是我刚刚在项目中解决了类似的问题-根本无法生成报告。在大多数情况下,这只是配置问题,但对于痛苦的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
第二,您应该具有用于报告的模板,就我而言,它位于wdio-html-template.hbs
和sanity-mobile-report-template.hbs
的 @ report / template 和HtmlReporter
。正如Rich Peters上面的声明
每个套件都单独执行,并且html和json文件是 产生。 wdio不会汇总套件,因此由 报告聚合器收集所有文件并创建聚合 完成后保存文件
ReportAggregator
实际上将需要找到它来为每个.spec文件生成内容的模板,然后需要HtmlReporter
第三,在wdio配置中需要正确的规范和套件声明,规范的通用名称以及专门用于套件的文件。
最后,使用ReportAggregator
参数(参考wdio guideline
我的最终项目结构如下所示,注意更改
--suite
答案 1 :(得分:0)
每个套件都单独执行,并生成一个html和json文件。 wdio不会聚合套件,因此这是由报表聚合器收集所有文件并在完成后创建一个聚合文件来完成的。