-
Notifications
You must be signed in to change notification settings - Fork 0
/
junitreporter.js
43 lines (36 loc) · 1.29 KB
/
junitreporter.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
const junitBuilder = require("junit-report-builder");
const LOG_TAG = "JUnitReporter";
function writeJUnitReport(outputDirectory, timestamp, testResults) {
const lineEnd = "\r\n";
let suite = junitBuilder
.testSuite()
.name('ContractPolice');
testResults.forEach(function(resultItem) {
const isPass = resultItem.result === "PASS";
let testCase = suite
.testCase()
.name(resultItem.testName);
if(!isPass) {
// Render report
let output = "";
resultItem.report.forEach(function (reportItem) {
output += "\t" + reportItem + lineEnd;
});
// Complete testcase
testCase
.standardError(output)
.failure();
}
});
junitBuilder.writeTo(outputDirectory + `/contractpolice-report-${timestamp}.xml`);
}
function JUnitReporter(logger, outputDir) {
this.logger = logger;
this.outputDir = outputDir;
}
JUnitReporter.prototype.writeTestReport = function(testResults, timestamp) {
this.logger.debug(LOG_TAG, "Writing application logs in junit format");
const junitTimestamp = timestamp / 1000;
return writeJUnitReport(this.outputDir, junitTimestamp, testResults);
};
module.exports = JUnitReporter;