Blame view
node_modules/eslint/lib/formatters/junit.js
2.09 KB
c39994410
|
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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
/** * @fileoverview jUnit Reporter * @author Jamund Ferguson */ "use strict"; var xmlescape = require("xml-escape"); //------------------------------------------------------------------------------ // Helper Functions //------------------------------------------------------------------------------ /** * Returns the severity of warning or error * @param {object} message message object to examine * @returns {string} severity level * @private */ function getMessageType(message) { if (message.fatal || message.severity === 2) { return "Error"; } else { return "Warning"; } } //------------------------------------------------------------------------------ // Public Interface //------------------------------------------------------------------------------ module.exports = function(results) { var output = ""; output += "<?xml version=\"1.0\" encoding=\"utf-8\"?> "; output += "<testsuites> "; results.forEach(function(result) { var messages = result.messages; if (messages.length) { output += "<testsuite package=\"org.eslint\" time=\"0\" tests=\"" + messages.length + "\" errors=\"" + messages.length + "\" name=\"" + result.filePath + "\"> "; } messages.forEach(function(message) { var type = message.fatal ? "error" : "failure"; output += "<testcase time=\"0\" name=\"org.eslint." + (message.ruleId || "unknown") + "\">"; output += "<" + type + " message=\"" + xmlescape(message.message || "") + "\">"; output += "<![CDATA["; output += "line " + (message.line || 0) + ", col "; output += (message.column || 0) + ", " + getMessageType(message); output += " - " + xmlescape(message.message || ""); output += (message.ruleId ? " (" + message.ruleId + ")" : ""); output += "]]>"; output += "</" + type + ">"; output += "</testcase> "; }); if (messages.length) { output += "</testsuite> "; } }); output += "</testsuites> "; return output; }; |