[ADF-3665]Fix the HTML report (#3934)

* Fix the report.

* Fix the HTML report
This commit is contained in:
cristinaj
2018-11-02 11:53:42 +02:00
committed by Eugenio Romano
parent daf7c50a19
commit c10f2dc276

View File

@@ -92,12 +92,10 @@ exports.config = {
plugins: [{ plugins: [{
package: 'jasmine2-protractor-utils', package: 'jasmine2-protractor-utils',
disableHTMLReport: false,
disableScreenshot: false, disableScreenshot: false,
screenshotOnExpectFailure: true, screenshotOnExpectFailure: true,
screenshotOnSpecFailure: false, screenshotOnSpecFailure: false,
clearFoldersBeforeTest: true, clearFoldersBeforeTest: true,
htmlReportDir: `${projectRoot}/e2e-output/html-report/`,
screenshotPath: `${projectRoot}/e2e-output/screenshots/` screenshotPath: `${projectRoot}/e2e-output/screenshots/`
}], }],
@@ -115,15 +113,13 @@ exports.config = {
browser.manage().window().setSize(width, height); browser.manage().window().setSize(width, height);
jasmine.getEnv().addReporter(new SpecReporter({spec: {displayStacktrace: true}})); jasmine.getEnv().addReporter(new SpecReporter({spec: {displayStacktrace: true}}));
var generatedSuiteName = Math.random().toString(36).substr(2, 5);
jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter({ var junitReporter = new jasmineReporters.JUnitXmlReporter({
consolidateAll: true, consolidateAll: true,
savePath: `${projectRoot}/e2e-output/junit-report`, savePath: `${projectRoot}/e2e-output/junit-report`,
filePrefix: 'results.xml', filePrefix: 'results.xml-' + generatedSuiteName,
useDotNotation: false, });
useFullTestName: false, jasmine.getEnv().addReporter(junitReporter);
reportFailedUrl: true
}));
return browser.driver.executeScript(disableCSSAnimation); return browser.driver.executeScript(disableCSSAnimation);
@@ -144,6 +140,22 @@ exports.config = {
}, },
beforeLaunch: function () {
var reportsFolder = `${projectRoot}/e2e-output/junit-report/`;
fs.exists(reportsFolder, function(exists, error) {
if (exists) {
rimraf(reportsFolder, function(err) {
console.log('[ERROR] rimraf: ', err);
});
}
if(error) {
console.log('[ERROR] fs', error);
}
});
},
afterLaunch: async function () { afterLaunch: async function () {
let saveScreenshot = process.env.SAVE_SCREENSHOT; let saveScreenshot = process.env.SAVE_SCREENSHOT;
@@ -158,6 +170,37 @@ exports.config = {
console.log(filenameReport); console.log(filenameReport);
let output = '';
let savePath = `${projectRoot}/e2e-output/junit-report/`;
let temporaryHtmlPath = savePath + 'html/temporaryHtml/';
let lastFileName = '';
let files = fs.readdirSync(savePath);
if (files && files.length > 0) {
for (const fileName of files) {
testConfigReport = {
reportTitle: 'Protractor Test Execution Report',
outputPath: temporaryHtmlPath,
outputFilename: Math.random().toString(36).substr(2, 5) + filenameReport,
};
let filePath = `${projectRoot}/e2e-output/junit-report/` + fileName;
new htmlReporter().from(filePath, testConfigReport);
lastFileName = testConfigReport.outputFilename;
}
};
var lastHtmlFile = temporaryHtmlPath + lastFileName + '.html';
if(!(fs.lstatSync(lastHtmlFile).isDirectory())) {
output = output + fs.readFileSync(lastHtmlFile);
};
var fileName = savePath + 'html/' + filenameReport + '.html';
fs.writeFileSync(fileName, output, 'utf8');
let alfrescoJsApi = new AlfrescoApi({ let alfrescoJsApi = new AlfrescoApi({
provider: 'ECM', provider: 'ECM',
@@ -173,23 +216,23 @@ exports.config = {
try { try {
folder = await folder = await
alfrescoJsApi.nodes.addNode('-my-', { alfrescoJsApi.nodes.addNode('-my-', {
'name': `retry-${retryCount}`, 'name': `retry-${retryCount}`,
'relativePath': `Builds/${buildNumber()}/screenshot`, 'relativePath': `Builds/${buildNumber()}/screenshot`,
'nodeType': 'cm:folder' 'nodeType': 'cm:folder'
}, {}, { }, {}, {
'overwrite': true 'overwrite': true
}); });
} catch (error) { } catch (error) {
console.log('Folder screenshot already present'); console.log('Folder screenshot already present');
folder = await folder = await
alfrescoJsApi.nodes.getNode('-my-', { alfrescoJsApi.nodes.getNode('-my-', {
'relativePath': `Builds/${buildNumber()}/screenshot/retry-${retryCount}`, 'relativePath': `Builds/${buildNumber()}/screenshot/retry-${retryCount}`,
'nodeType': 'cm:folder' 'nodeType': 'cm:folder'
}, {}, { }, {}, {
'overwrite': true 'overwrite': true
}); });
} }
for (const fileName of files) { for (const fileName of files) {
@@ -198,71 +241,59 @@ exports.config = {
let file = fs.createReadStream(pathFile); let file = fs.createReadStream(pathFile);
await await
alfrescoJsApi.upload.uploadFile( alfrescoJsApi.upload.uploadFile(
file, file,
'', '',
folder.entry.id, folder.entry.id,
null, null,
{ {
'name': file.name, 'name': file.name,
'nodeType': 'cm:content', 'nodeType': 'cm:content',
'autoRename': true 'autoRename': true
} }
); );
} }
} }
} }
testConfigReport = { let pathFile = path.join(__dirname, './e2e-output/junit-report/html', filenameReport + '.html');
reportTitle: 'Protractor Test Execution Report',
outputPath: `${projectRoot}/e2e-output/junit-report`,
outputFilename: filenameReport,
screenshotPath: `${projectRoot}/e2e-output/screenshots/`,
screenshotsOnlyOnFailure: true,
};
new htmlReporter().from(`${projectRoot}/e2e-output/junit-report/results.xml`, testConfigReport);
let pathFile = path.join(__dirname, './e2e-output/junit-report', filenameReport + '.html');
let reportFile = fs.createReadStream(pathFile); let reportFile = fs.createReadStream(pathFile);
let reportFolder; let reportFolder;
try { try {
reportFolder = await reportFolder = await
alfrescoJsApi.nodes.addNode('-my-', { alfrescoJsApi.nodes.addNode('-my-', {
'name': 'report', 'name': 'report',
'relativePath': `Builds/${buildNumber()}`, 'relativePath': `Builds/${buildNumber()}`,
'nodeType': 'cm:folder' 'nodeType': 'cm:folder'
}, {}, { }, {}, {
'overwrite': true 'overwrite': true
}); });
} catch (error) { } catch (error) {
// console.log('Folder report already present' + error);
reportFolder = await reportFolder = await
alfrescoJsApi.nodes.getNode('-my-', { alfrescoJsApi.nodes.getNode('-my-', {
'relativePath': `Builds/${buildNumber()}/report`, 'relativePath': `Builds/${buildNumber()}/report`,
'nodeType': 'cm:folder' 'nodeType': 'cm:folder'
}, {}, { }, {}, {
'overwrite': true 'overwrite': true
}); });
} }
try { try {
await await
alfrescoJsApi.upload.uploadFile( alfrescoJsApi.upload.uploadFile(
reportFile, reportFile,
'', '',
reportFolder.entry.id, reportFolder.entry.id,
null, null,
{ {
'name': reportFile.name, 'name': reportFile.name,
'nodeType': 'cm:content', 'nodeType': 'cm:content',
'autoRename': true 'autoRename': true
} }
); );
} catch (error) { } catch (error) {
console.log('error' + error); console.log('error' + error);