mlison / protractor-jasmine2-screenshot-reporter

Protractor screenshot reporter for Jasmine2
https://www.npmjs.com/package/protractor-jasmine2-screenshot-reporter
MIT License
81 stars 79 forks source link

Generating browser-wise report. #55

Open patcyg opened 8 years ago

patcyg commented 8 years ago

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.

mlison commented 8 years ago

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.

patcyg commented 8 years ago

Thank you for the quick response @mlison. In my case running separately will not be possible.

geskill commented 8 years ago

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;