// --------------------------------------------------------------------------------------------------
// ------------- Generamos XML de salida -------------
// --------------------------------------------------------------------------------------------------
var fs = require('fs');
var forEachInDir = require('foreach-in-dir');
var path = require('path');
var dirAllureResults = './fop/allure-results/';
var fileAuditResults = './fop/audit-results/testResult.xml';
var search = "<?xml version='1.0'?>";
function remove() {
var body = fs.readFileSync(fileAuditResults).toString();
var idx = body.indexOf(search);
if (idx >= 0 ) {
var output = body.substr(0, idx) + body.substr(idx + search.length);
fs.writeFileSync(fileAuditResults, output);
}
}
// Recogemos todos los XML que devuelve allure y lo unimos en uno solo
describe( 'Creting output XML', function() {
it('XML done', function () {
var numXMLfunction = function () {
var i=0;
fs.readdirSync(dirAllureResults).forEach(file => {
// console.log(">> LEO archivo: " + file);
if (file.indexOf(".xml") !== -1) {
i++;
}
})
return i;
}
var j = 0;
var numXML = numXMLfunction();
fs.writeFile(fileAuditResults, '<myroot> ', (err) => {
if (err) throw err;
});
forEachInDir(dirAllureResults, function (filename, done) {
if (filename.indexOf(".xml") !== -1){
const fd = fs.openSync(dirAllureResults+filename, 'r+');
const stats = fs.statSync(dirAllureResults+filename);
const fileSizeInBytes = stats.size - 0;
const buf = new Buffer(fileSizeInBytes);
fs.readSync(fd, buf, 0, fileSizeInBytes, 0);
fs.appendFileSync(fileAuditResults, buf);
if (j++ === numXML-1) {
fs.appendFileSync(fileAuditResults, ' </myroot>');
}
}
//eliminamos los <?xml version='1.0'?>
remove();
}, function (err, results) {
if (err) throw err;
});
});
})