Как получить отчет XML и HTML для всех браузеров в protractor?

#javascript #automation #jasmine #protractor #jasmine-reporters

#javascript #автоматизация #jasmine #транспортир #jasmine-репортеры

Вопрос:

Мне нужно сгенерировать как XML, так и HTML-отчет в стиле Jnuit, но только для 1 браузера. Как получить его для всех браузеров. Использование XML для создания HTML с помощью protractor-html-reporter-2.

  
 jasmine.getEnv().addReporter(
   new jasmineReporters.JUnitXmlReporter({
     consolidateAll: true,
     savePath: './report/',
   })
 );
},
 

Ответ №1:

Мы можем использовать Jasmine reporter для создания отчета XML, а затем user HTML reporter для преобразования этих XML в HTML. Однако HTML не показывает результаты более красивым образом.

Предложение: вы можете использовать Jasmine reporter для создания XML-отчета в стиле JUnit, а для HTML вы можете использовать Protractor beautiful reporter.

В методе onPrepare() в конфигурации транспортира:

 browser.driver.manage().window().maximize();
browser.get(browserConfig.url);
// Getting browserName from config for File name
browser.getProcessedConfig().then(browser => {
  const browserName = browser.capabilities.browserName;
  const junitReporter = new jasmineReporters.JUnitXmlReporter({
    consolidateAll: true,
    savePath: 'testresults',
    filePrefix: `${browserName}.xmloutput`
  });
  jasmine.getEnv().addReporter(junitReporter);
});

jasmine.getEnv().addReporter(new htmlReporter(reporter).getJasmine2Reporter());
 

и для reporter

 const reporter = new htmlReporter({
  baseDirectory: 'Execution_HTMLReports',
  // tslint:disable-next-line:typedef
  pathBuilder: function pathBuilder(spec, descriptions, results, capabilities) {
    // tslint:disable-next-line:one-variable-per-declaration
    const currentDate = new Date(),
      day = currentDate.getDate(),
      month = currentDate.getMonth()   1,
      year = currentDate.getFullYear();

    const validDescriptions = descriptions.map(description => {
      return description.replace('/', '@');
    });

    return path.join(day   '-'   month   '-'   year, capabilities.get('browserName'), validDescriptions.join('-'));
  },
  docName: _env   '_test-report.html',
  screenshotsSubfolder: 'screenshotsOnFailure',
  takeScreenShotsOnlyForFailedSpecs: true,
  excludeSkippedSpecs: true,
  preserveDirectory: false,
  gatherBrowserLogs: true,
  jsonsSubfolder: 'jsonsmetadata',
  clientDefaults: {
    showTotalDurationIn: 'header',
    totalDurationFormat: 'h:m:s',
    columnSettings: {
      displaySessionId: false,
      inlineScreenshots: false
    }
  }
});