1

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

这是我的配置在 onPrepare 方法中的外观:

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

我注意到屏幕截图可用于在报告/屏幕截图目录中运行的其他浏览器。此外,它可以在命令行上打印所有浏览器的结果。但是除了一个浏览器的结果之外,它在 html 报告中没有显示任何内容。

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

示例报告视图

4

3 回答 3

5

由于您只指定一个路径,因此每个浏览器会话可能会覆盖前一个会话的结果。要为每个报告创建一个唯一的 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
        }));
    }
}
于 2016-01-14T17:14:45.427 回答
0

我觉得使用 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
  }));
});    

}

于 2019-04-24T10:47:07.397 回答
0

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

var Jasmine2HtmlReporter = 要求('量角器-jasmine2-html-reporter');jasmine.getEnv().addReporter(new Jasmine2HtmlReporter({ savePath: './reports/', cleanDestination : false, fileNameDateSuffix : true }));

于 2020-07-30T20:23:58.703 回答