protractor-jasmine2-html-reporter не показывает результаты теста на мульти-возможности

Этот Html Reporter отлично работает, когда используется один браузер, но результаты нескольких свойств браузера, отображающих свойства множественных возможностей, не отображаются.

Вот как выглядит мой конфиг в методе onPrepare:

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

Я заметил, что скриншоты доступны для других браузеров, запускаемых в каталоге отчетов / скриншотов. Кроме того, он печатает результаты всех браузеров в командной строке. Но он не показывает ничего в отчете html, кроме результатов одного браузера.

Есть ли жасминовый вариант, который мне нужно определить? Я попробовал 'protractor-jasmine2-screenshot-reporter', и он отлично работает для нескольких результатов браузера.

образец отчета

1 ответ

Решение

Поскольку вы указываете только один путь, каждый сеанс браузера, вероятно, перезаписывает результаты предыдущего сеанса. Чтобы создать уникальный идентификатор для каждого отчета, в вашей конфигурации вы можете сделать что-то вроде:

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
        }));
    }
}

В документации также есть два параметра, которые вместе дают уникальные отчеты. По сути, один добавляет к отчету метку даты и времени, а другой параметр указывает, что предыдущие отчеты не должны удаляться.

var Jasmine2HtmlReporter = require ('protractor-jasmine2-html-reporter');jasmine.getEnv().addReporter(новый Jasmine2HtmlReporter({savePath: './reports/',cleanDestination: false,fileNameDateSuffix: true}));

Я считаю, что лучше использовать имя браузера, чем идентификатор сеанса

onPrepare: function () {

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
  }));
});    

}

Другие вопросы по тегам