#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
}
}
});