mirror of https://github.com/grpc/grpc-node.git
Handle parse failures when merging test logs
This commit is contained in:
parent
3bebc2230a
commit
61c8bdf10f
|
@ -25,6 +25,30 @@ const readDir = util.promisify(fs.readdir);
|
|||
|
||||
const rootDir = __dirname;
|
||||
|
||||
// Fake test suite log with a failure if log parsing failed
|
||||
const parseFailureLog = [
|
||||
{
|
||||
$: {
|
||||
name: 'Unknown Test Suite',
|
||||
tests: '1',
|
||||
failures: '1',
|
||||
},
|
||||
testcase: [
|
||||
{
|
||||
$: {
|
||||
classname: 'Test Log Parsing',
|
||||
name: 'Test Log Parsing',
|
||||
failure: {
|
||||
$: {
|
||||
message: "Log parsing failed"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
readDir(rootDir + '/reports')
|
||||
.then((dirNames) =>
|
||||
Promise.all(dirNames.map((dirName) =>
|
||||
|
@ -41,7 +65,12 @@ readDir(rootDir + '/reports')
|
|||
)
|
||||
.then((objects) => {
|
||||
let merged = objects[0];
|
||||
merged.testsuites.testsuite = Array.prototype.concat.apply([], objects.map((obj) => obj.testsuites.testsuite));
|
||||
merged.testsuites.testsuite = Array.prototype.concat.apply([], objects.map((obj) => {
|
||||
if (obj) {
|
||||
return obj.testsuites.testsuite;
|
||||
} else {
|
||||
return parseFailureLog;
|
||||
}}));
|
||||
let builder = new xml2js.Builder();
|
||||
let xml = builder.buildObject(merged);
|
||||
let resultName = path.resolve(rootDir, 'reports', dirName, 'sponge_log.xml');
|
||||
|
|
Loading…
Reference in New Issue