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 += `${type}>`;
- output += "\n";
- });
- output += "\n";
+ output += ``;
+ output += `<${type} message="${xmlEscape(message.message || "")}">`;
+ output += "";
+ output += `${type}>`;
+ 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, ""), "");
});
});
});