Unable to change the filename in 'protractor-jasmine2-html-reporter' with "filename: "

293 Views Asked by At

I'm using "'protractor-jasmine2-html-reporter" to generate reports for my E2E test cases. I need every run to create a new report html file.

Right now the "htmlReport.html" file get over-riden with every run of my test suite

Have tried adding adding moment.js to the end of "filename: " but the name does not change from "htmlReport.html"

1

There are 1 best solutions below

1
dheeraj On BEST ANSWER

I have tried by adding Date to out outputFilename in TestConfig object in onComplete and it works well and creates html with current date.

This is how it looks

  onComplete: function() {
    var browserName, browserVersion;
    var capsPromise = browser.getCapabilities();

    capsPromise.then(function(caps) {
      browserName = caps.get('browserName');
      browserVersion = caps.get('version');
      platform = caps.get('platform');

      var HTMLReport = require('protractor-html-reporter-2');

      let current_datetime = new Date()
      let formatted_date = current_datetime.getFullYear() + "_" + (current_datetime.getMonth() + 1) + "_" + current_datetime.getDate() + " " + current_datetime.getHours() + ":" + current_datetime.getMinutes() + ":" + current_datetime.getSeconds()
      let fD1 = formatted_date.replace(" ","_");
      let fD2 = fD1.replace(":","_").replace(":","_");

      testConfig = {
        reportTitle: 'Protractor Test Execution Report',
        outputPath: './reports',
        outputFilename: 'htmlReport_' + fD2,
        screenshotPath: './reports/screenshots',
        testBrowser: browserName,
        browserVersion: browserVersion,
        modifiedSuiteName: true,
        screenshotsOnlyOnFailure: true,
        testPlatform: platform
      };
      new HTMLReport().from('./Results/xmlresults-test1.xml', testConfig);
    });
  }

Hope this helps!