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