Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 30 additions & 1 deletion merge_kokoro_logs.js
Original file line number Diff line number Diff line change
Expand Up @@ -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) =>
Expand All @@ -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');
Expand Down