javascriptjasmineprotractorjasmine-reporters

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


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"


Solution

  • 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!