Search code examples
htmlprotractorreportscreenshot

protractor-html-screenshot-reporter does not work


I have done everything as written on https://www.npmjs.com/package/protractor-html-screenshot-reporter, but no HTML or screenshots are saved to folder.

I've installed protractor-html-screenshot-reporter with command:

npm install protractor-html-screenshot-reporter --save-dev

I have then done npm init and saved package.json file, which contains:

 ...
 "devDependencies": {
    "jasmine-reporters": "^2.2.0",
    "protractor-html-screenshot-reporter": "0.0.21"
  },
 ...

I can also see protractor-html-screenshot-reporter in /node_modules/ folder.

In config file I have the following:

var HtmlReporter = require('protractor-html-screenshot-reporter');

exports.config = {
    ...

    jasmineNodeOpts: {
        showColors: true, // Use colors in the command line report.
        onComplete: null,
        isVerbose: false,
        includeStackTrace: false,
        defaultTimeoutInterval: 1000000,
        print: function() {}

    },

    onPrepare: function() {
        jasmine.getEnv().addReporter(new HtmlReporter({
            baseDirectory: '../reports/screenshots',
            takeScreenShotsOnlyForFailedSpecs: true,
            docTitle: 'Desk test report',
            docName: 'desk_report.html',
            preserveDirectory: true
        }));
   }
}

Now when I run protractor conf.js I don't see any /reports/screenshots folder, HTML report or screenshot created. Help please!


Solution

  • Jasmine allure Reporter is better for reports and screenshots

    Below is the code for it:

    //conf.js
    
    exports.config = {
    framework: 'jasmine2',  
     jasmineNodeOpts: {
      showColors: true,
      includeStackTrace: true,
      defaultTimeoutInterval: 144000000
     },
    directConnect: true,
    seleniumAddress: 'http://localhost:4444/wd/hub',
    specs: ['/**/Tests/**/*test.js'],
    capabilities: { 'browserName': 'chrome' },
    
     onPrepare: function () {
        browser.manage().timeouts().implicitlyWait(15000);
        var AllureReporter = require('jasmine-allure-reporter');
        jasmine.getEnv().addReporter(new AllureReporter({
            allureReport: {
                resultsDir: 'allure-results'
            }
        }));
        jasmine.getEnv().afterEach(function (done) {
            browser.takeScreenshot().then(function (png) {
                allure.createAttachment('Screenshot', function () {
                    return new Buffer(png, 'base64');
                }, 'image/png')();
                done();
            });
          });
          }
    

    I Hope this solves your problem. Visit the Link for more information.