mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
Add HTML Reporter (#3757)
* Add HTML Reporter; Removed parallel execution; Removed z-finish.e2e.ts tests; Copy the screenshots and the report to an environment. * fix report upload and unify folder
This commit is contained in:
committed by
Eugenio Romano
parent
04799f0c95
commit
2a883fca5f
@@ -4,8 +4,14 @@
|
||||
const path = require('path');
|
||||
const {SpecReporter} = require('jasmine-spec-reporter');
|
||||
const jasmineReporters = require('jasmine-reporters');
|
||||
const htmlReporter = require('protractor-html-reporter-2');
|
||||
const retry = require('protractor-retry').retry;
|
||||
|
||||
const AlfrescoApi = require('alfresco-js-api-node');
|
||||
const TestConfig = require('./e2e/test.config');
|
||||
|
||||
const fs = require('fs');
|
||||
|
||||
const projectRoot = path.resolve(__dirname);
|
||||
|
||||
const width = 1366;
|
||||
@@ -21,7 +27,7 @@ var NAME_TEST = process.env.NAME_TEST ? true : false
|
||||
var specsToRun = './**/' + FOLDER + '**/*.e2e.ts';
|
||||
|
||||
if (process.env.NAME_TEST) {
|
||||
specsToRun = './e2e/**/' + process.env.NAME_TEST;
|
||||
specsToRun = './e2e/**/' + process.env.NAME_TEST;
|
||||
}
|
||||
|
||||
var args_options = [];
|
||||
@@ -44,8 +50,6 @@ exports.config = {
|
||||
capabilities: {
|
||||
browserName: 'chrome',
|
||||
|
||||
shardTestFiles: true,
|
||||
maxInstances: 1,
|
||||
chromeOptions: {
|
||||
prefs: {
|
||||
'credentials_enable_service': false,
|
||||
@@ -131,6 +135,117 @@ exports.config = {
|
||||
|
||||
},
|
||||
|
||||
onComplete: async function () {
|
||||
|
||||
let buildNumber = process.env.TRAVIS_BUILD_NUMBER;
|
||||
let saveScreenshot = process.env.SAVE_SCREENSHOT;
|
||||
|
||||
let alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: TestConfig.adf.url
|
||||
});
|
||||
alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
|
||||
if (saveScreenshot === 'true') {
|
||||
if (!buildNumber) {
|
||||
buildNumber = Date.now();
|
||||
}
|
||||
|
||||
let files = fs.readdirSync(path.join(__dirname, './e2e-output/screenshots'));
|
||||
|
||||
if (files && files.length > 0) {
|
||||
|
||||
try {
|
||||
folder = await alfrescoJsApi.nodes.addNode('-my-', {
|
||||
'name': 'screenshot',
|
||||
'relativePath': `Builds/${buildNumber}`,
|
||||
'nodeType': 'cm:folder'
|
||||
}, {}, {
|
||||
'overwrite': true
|
||||
});
|
||||
} catch (error) {
|
||||
console.log('Folder screenshot already present');
|
||||
|
||||
folder = await alfrescoJsApi.nodes.getNode('-my-', {
|
||||
'relativePath': `Builds/${buildNumber}/screenshot`,
|
||||
'nodeType': 'cm:folder'
|
||||
}, {}, {
|
||||
'overwrite': true
|
||||
});
|
||||
}
|
||||
|
||||
for (const fileName of files) {
|
||||
|
||||
let pathFile = path.join(__dirname, './e2e-output/screenshots', fileName);
|
||||
let file = fs.createReadStream(pathFile);
|
||||
|
||||
await alfrescoJsApi.upload.uploadFile(
|
||||
file,
|
||||
'',
|
||||
folder.entry.id,
|
||||
null,
|
||||
{
|
||||
'name': file.name,
|
||||
'nodeType': 'cm:content'
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
testConfig = {
|
||||
reportTitle: 'Protractor Test Execution Report',
|
||||
outputPath: `${projectRoot}/e2e-output/junit-report`,
|
||||
outputFilename: 'ProtractorTestReport',
|
||||
screenshotPath: '`${projectRoot}/e2e-output/screenshots/`',
|
||||
screenshotsOnlyOnFailure: true
|
||||
};
|
||||
|
||||
new htmlReporter().from(`${projectRoot}/e2e-output/junit-report/results.xml`, testConfig);
|
||||
|
||||
let pathFile = path.join(__dirname, './e2e-output/junit-report', 'ProtractorTestReport.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
|
||||
});
|
||||
} catch (error) {
|
||||
console.log('Folder report already present' + error);
|
||||
|
||||
reportFolder = await 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'
|
||||
}
|
||||
);
|
||||
|
||||
} catch (error) {
|
||||
console.log('error' + error);
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
afterLaunch() {
|
||||
return retry.afterLaunch(3);
|
||||
}
|
||||
|
Reference in New Issue
Block a user