[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: [{
package: 'jasmine2-protractor-utils',
disableHTMLReport: false,
disableScreenshot: false,
screenshotOnExpectFailure: true,
screenshotOnSpecFailure: false,
clearFoldersBeforeTest: true,
htmlReportDir: `${projectRoot}/e2e-output/html-report/`,
screenshotPath: `${projectRoot}/e2e-output/screenshots/`
}],
@@ -115,15 +113,13 @@ exports.config = {
browser.manage().window().setSize(width, height);
jasmine.getEnv().addReporter(new SpecReporter({spec: {displayStacktrace: true}}));
jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter({
var generatedSuiteName = Math.random().toString(36).substr(2, 5);
var junitReporter = new jasmineReporters.JUnitXmlReporter({
consolidateAll: true,
savePath: `${projectRoot}/e2e-output/junit-report`,
filePrefix: 'results.xml',
useDotNotation: false,
useFullTestName: false,
reportFailedUrl: true
}));
filePrefix: 'results.xml-' + generatedSuiteName,
});
jasmine.getEnv().addReporter(junitReporter);
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 () {
let saveScreenshot = process.env.SAVE_SCREENSHOT;
@@ -158,6 +170,37 @@ exports.config = {
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({
provider: 'ECM',
@@ -173,23 +216,23 @@ exports.config = {
try {
folder = await
alfrescoJsApi.nodes.addNode('-my-', {
'name': `retry-${retryCount}`,
'relativePath': `Builds/${buildNumber()}/screenshot`,
'nodeType': 'cm:folder'
}, {}, {
'overwrite': true
});
alfrescoJsApi.nodes.addNode('-my-', {
'name': `retry-${retryCount}`,
'relativePath': `Builds/${buildNumber()}/screenshot`,
'nodeType': 'cm:folder'
}, {}, {
'overwrite': true
});
} catch (error) {
console.log('Folder screenshot already present');
folder = await
alfrescoJsApi.nodes.getNode('-my-', {
'relativePath': `Builds/${buildNumber()}/screenshot/retry-${retryCount}`,
'nodeType': 'cm:folder'
}, {}, {
'overwrite': true
});
alfrescoJsApi.nodes.getNode('-my-', {
'relativePath': `Builds/${buildNumber()}/screenshot/retry-${retryCount}`,
'nodeType': 'cm:folder'
}, {}, {
'overwrite': true
});
}
for (const fileName of files) {
@@ -198,71 +241,59 @@ exports.config = {
let file = fs.createReadStream(pathFile);
await
alfrescoJsApi.upload.uploadFile(
file,
'',
folder.entry.id,
null,
{
'name': file.name,
'nodeType': 'cm:content',
'autoRename': true
}
);
alfrescoJsApi.upload.uploadFile(
file,
'',
folder.entry.id,
null,
{
'name': file.name,
'nodeType': 'cm:content',
'autoRename': true
}
);
}
}
}
testConfigReport = {
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 pathFile = path.join(__dirname, './e2e-output/junit-report/html', filenameReport + '.html');
let reportFile = fs.createReadStream(pathFile);
let reportFolder;
try {
reportFolder = await
alfrescoJsApi.nodes.addNode('-my-', {
'name': 'report',
'relativePath': `Builds/${buildNumber()}`,
'nodeType': 'cm:folder'
}, {}, {
'overwrite': true
});
alfrescoJsApi.nodes.addNode('-my-', {
'name': 'report',
'relativePath': `Builds/${buildNumber()}`,
'nodeType': 'cm:folder'
}, {}, {
'overwrite': true
});
} catch (error) {
// console.log('Folder report already present' + error);
reportFolder = await
alfrescoJsApi.nodes.getNode('-my-', {
'relativePath': `Builds/${buildNumber()}/report`,
'nodeType': 'cm:folder'
}, {}, {
'overwrite': true
});
alfrescoJsApi.nodes.getNode('-my-', {
'relativePath': `Builds/${buildNumber()}/report`,
'nodeType': 'cm:folder'
}, {}, {
'overwrite': true
});
}
try {
await
alfrescoJsApi.upload.uploadFile(
reportFile,
'',
reportFolder.entry.id,
null,
{
'name': reportFile.name,
'nodeType': 'cm:content',
'autoRename': true
}
);
alfrescoJsApi.upload.uploadFile(
reportFile,
'',
reportFolder.entry.id,
null,
{
'name': reportFile.name,
'nodeType': 'cm:content',
'autoRename': true
}
);
} catch (error) {
console.log('error' + error);