protractor-jasmine2-screenshot-reporter
protractor-jasmine2-screenshot-reporter copied to clipboard
Generating browser-wise report.
Is there any way where we can generate html report browser-wise. I have selenium-grid environment set up and we are using protractor-jasmine2-screenshot-reporter to generate reports. Reporter successfully generate a single html report for all specs on for all test executed on all browsers. It would be good if there is also an option to generate different browser-wise reports.
No, not at the moment. The only way I can think of quickly, is to run your tests as separate processes with separate configs for each browser, but whether that is possible / useful depends on your use-case.
Thank you for the quick response @mlison. In my case running separately will not be possible.
It works partially, however you loose the option to save screenshots, because you can not use beforeLaunch here and afterLaunch will be ignored anyway.
My conf.js:
// Assign the test reporter to each running instance
onPrepare: function () {
var capsPromise = browser.getCapabilities();
capsPromise.then(function (caps) {
var browserName = caps.get('browserName').toUpperCase();
var browserVersion = caps.get('version');
var prePendStr = browserName + '-' + browserVersion + '-';
config.htmlScreenshotReporter.filename = prePendStr + config.htmlScreenshotReporter.filename;
var htmlScreenshotReporter = new HtmlScreenshotReporter(config.htmlScreenshotReporter);
// Workaround, we can not use beforeLaunch for protractor-jasmine2-screenshot-reporter
try {
if (!fs.existsSync(config.htmlScreenshotReporter.dest)) {
fs.mkdirSync(config.htmlScreenshotReporter.dest);
}
} catch (e) {
console.error('Couldn\'t make dir: ' + config.htmlScreenshotReporter.dest);
}
jasmine.getEnv().addReporter(htmlScreenshotReporter);
});
browser.driver.manage().window().maximize();
},
base.conf.js
var htmlScreenshotReporterConf = {
reportTitle: 'Protractor tests',
reportOnlyFailedSpecs: false,
captureOnlyFailedSpecs: true,
consolidateAll: true,
showQuickLinks: true,
dest: 'HTMLTestResult/',
filename: 'results.html'
};
var config = {
framework: 'jasmine2',
htmlScreenshotReporter: htmlScreenshotReporterConf,
}
module.exports = config;