protractor-jasmine2-html-reporter 不显示多能力测试的结果

protractor-jasmine2-html-reporter doesn't show results for multicapabilities test

Html Reporter 在使用一个浏览器时工作正常,但多个浏览器使用量角器的多功能 属性 结果不显示。

这是我的配置在 onPrepare 方法中的样子:

var Jasmine2HtmlReporter = require('protractor-jasmine2-html-reporter');
jasmine.getEnv().addReporter(new Jasmine2HtmlReporter({
    savePath: './reports/'
}));

我注意到在 reports/screenshot 目录中运行的其他浏览器的屏幕截图可用。此外,它在命令行上打印所有浏览器的结果。但它在 html 报告中只显示一个浏览器的结果。

我需要定义茉莉花选项吗?我尝试了 'protractor-jasmine2-screenshot-reporter',它适用于多种浏览器结果。

由于您只指定了一个路径,因此每个浏览器会话都可能覆盖前一个会话的结果。要为每个报告创建一个唯一的 ID,您可以在您的配置中执行以下操作:

var Jasmine2HtmlReporter = require('protractor-jasmine2-html-reporter');

onPrepare: function() {
    return browser.getCapabilities().then(function(caps) {
        var sessionId = caps.caps_['webdriver.remote.sessionid'];
        jasmine.getEnv().addReporter(new Jasmine2HtmlReporter({
            savePath: './reports/' + sessionId
        }));
    }
}

我觉得使用 browsername 比使用 session id 更好

onPrepare: 函数 () {

let globals = require('protractor');

let browser = globals.browser;

browser.manage().window().maximize();
browser.manage().timeouts().implicitlyWait(5000);
return browser.getCapabilities().then(function (caps) {
  var sessionId = caps.get("sessionid" + 'webdriver.remote.sessionid');
  var browsername = caps.get('browserName');
  jasmine.getEnv().addReporter(new Jasmine2HtmlReporter({
    // savePath: 'C:/report/report/screenshots' + sessionId
    savePath: './test/reports/screenshots' + browsername,
    screenshotsFolder: 'images',
    takeScreenshots: true,
    takeScreenshotsOnlyOnFailures: true
  }));
});    

}

根据文档,还有两个参数共同生成了独特的报告。本质上,一个将日期和时间戳附加到报告,另一个参数指定以前的报告被删除。

var Jasmine2HtmlReporter = require('protractor-jasmine2-html-reporter'); jasmine.getEnv().addReporter(新的 Jasmine2HtmlReporter({ 保存路径:'./reports/', cleanDestination: false, 文件名日期后缀:正确 }));