diff --git a/lib/formatters/junit.js b/lib/formatters/junit.js index 069ed5ff8f0..77d548f380e 100644 --- a/lib/formatters/junit.js +++ b/lib/formatters/junit.js @@ -39,22 +39,28 @@ module.exports = function(results) { const messages = result.messages; - output += `\n`; - messages.forEach(message => { - const type = message.fatal ? "error" : "failure"; + if (messages.length > 0) { + output += `\n`; + messages.forEach(message => { + const type = message.fatal ? "error" : "failure"; - output += ``; - output += `<${type} message="${xmlEscape(message.message || "")}">`; - output += ""; - output += ``; - output += "\n"; - }); - output += "\n"; + output += ``; + output += `<${type} message="${xmlEscape(message.message || "")}">`; + output += ""; + output += ``; + output += "\n"; + }); + output += "\n"; + } else { + output += `\n`; + output += `\n`; + output += "\n"; + } }); diff --git a/tests/lib/formatters/junit.js b/tests/lib/formatters/junit.js index e0e0bfc37f0..c6995755d6f 100644 --- a/tests/lib/formatters/junit.js +++ b/tests/lib/formatters/junit.js @@ -195,7 +195,20 @@ describe("formatter:junit", () => { it("should return 2 ", () => { const result = formatter(code); - assert.strictEqual(result.replace(/\n/g, ""), ""); + assert.strictEqual(result.replace(/\n/g, ""), ""); + }); + }); + + describe("when passed a file with no errors", () => { + const code = [{ + filePath: "foo.js", + messages: [] + }]; + + it("should print a passing ", () => { + const result = formatter(code); + + assert.strictEqual(result.replace(/\n/g, ""), ""); }); }); });