【问题标题】:protractor-jasmine2-html-reporter doesn't show results for multicapabilities testprotractor-jasmine2-html-reporter 不显示多功能测试的结果
【发布时间】:2016-01-13 22:10:16
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: html protractor jasmine2.0 jasmine-reporters


    【解决方案1】:

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

    【讨论】:

    • 完美!感谢那。脚本可以正常工作,只需对调用函数(caps)进行微调。
    • 您知道是否有办法合并所有结果吗?就像我们在 jasmine1 html 记者中所做的那样?我尝试设置 consolidateAll 标志,但没有发现任何区别
    • 我不熟悉这个插件,但我会怀疑它。当您使用 multiCapabilities 时,每个浏览器实例都是独立启动的,其 onPrepare 仅为该会话添加报告器。基本上每个记者都不了解其他记者,因此他们无法合并报告。我认为您必须在运行完成后自己制作一个 shell 脚本来将它们拼凑在一起。
    【解决方案2】:

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

    }

    【讨论】:

      【解决方案3】:

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

      var Jasmine2HtmlReporter = require('protractor-jasmine2-html-reporter'); jasmine.getEnv().addReporter(新 Jasmine2HtmlReporter({ 保存路径:'./reports/', cleanDestination:假, fileNameDateSuffix:真 }));

      【讨论】:

        猜你喜欢
        • 2018-05-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多