1

我在 '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
            });
        })();
    }
}

我希望有多个测试用例的单一报告。但是我得到了每个测试用例的多个报告。

4

2 回答 2

3

这个话题很老了,但我刚刚在我的项目中解决了一个类似的问题——根本无法生成报告。在大多数情况下,这只是配置问题,但是对于这种痛苦的 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.hbssanity-mobile-report-template.hbsforHtmlReporter和forReportAggregator中。正如 Rich Peters 在上面提到的

每个套件都单独执行,并生成一个 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
于 2020-10-14T11:01:05.903 回答
0

每个套件都单独执行,并生成一个 html 和 json 文件。wdio 不聚合套件,因此这是由报表聚合器完成的,它收集所有文件并在完成时创建一个聚合文件。

于 2020-04-21T18:21:47.870 回答