0

我需要生成 Jnuit 样式的 XML 和 HTML 报告,但只需要 1 个浏览器。如何为所有浏览器获取它。在 protractor-html-reporter-2 的帮助下使用 XML 创建 HTML。

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

1 回答 1

0

我们可以使用 Jasmine 报告器创建 XML 报告,然后使用 HTML 报告器将这些 XML 转换为 HTML。然而 HTML 并没有以更漂亮的方式显示结果。

建议:您可以使用 Jasmine 记者创建 JUnit 风格的 XML 报告,对于 HTML,您可以使用 Protractor 美丽的记者。

在 Protractor 配置的 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());

和记者

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
    }
  }
}); 
于 2020-12-16T11:59:25.357 回答