From c03d24846d001852c0c8952b2de802ad5d8cc2d6 Mon Sep 17 00:00:00 2001 From: Marc Udoff Date: Mon, 3 Dec 2018 17:39:52 -0500 Subject: [PATCH] Dont count xunit failures as errors --- lib/reporters/xunit.js | 2 +- test/reporters/xunit.spec.js | 52 ++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) diff --git a/lib/reporters/xunit.js b/lib/reporters/xunit.js index 881c87f631..e1de140951 100644 --- a/lib/reporters/xunit.js +++ b/lib/reporters/xunit.js @@ -90,7 +90,7 @@ function XUnit(runner, options) { { name: suiteName, tests: stats.tests, - failures: stats.failures, + failures: 0, errors: stats.failures, skipped: stats.tests - stats.failures - stats.passes, timestamp: new Date().toUTCString(), diff --git a/test/reporters/xunit.spec.js b/test/reporters/xunit.spec.js index 4cbf76c646..04bbedb221 100644 --- a/test/reporters/xunit.spec.js +++ b/test/reporters/xunit.spec.js @@ -5,6 +5,7 @@ var mkdirp = require('mkdirp'); var path = require('path'); var assert = require('assert'); var createStatsCollector = require('../../lib/stats-collector'); +var EventEmitter = require('events').EventEmitter; var reporters = require('../../').reporters; var XUnit = reporters.XUnit; @@ -320,6 +321,57 @@ describe('XUnit reporter', function() { expect(expectedWrite, 'to be', expectedTag); }); }); + it('should write expected summary statistics', function() { + var count = 0; + var simpleError = { + actual: 'foo', + expected: 'bar', + message: expectedMessage, + stack: expectedStack + }; + var generateTest = function(passed) { + var t = { + title: expectedTitle + count, + state: passed ? 'passed' : 'failed', + isPending: function() { + return false; + }, + slow: function() { + return false; + }, + parent: { + fullTitle: function() { + return expectedClassName; + } + }, + duration: 1000 + }; + return t; + }; + + var runner = new EventEmitter(); + createStatsCollector(runner); + var xunit = new XUnit(runner); + expectedWrite = ''; + xunit.write = function(string) { + expectedWrite += string; + }; + + // 3 tests, no failures (i.e. tests that could not run), and 2 errors + runner.emit('test end'); + runner.emit('pass', generateTest(true)); + runner.emit('test end'); + runner.emit('fail', generateTest(false), simpleError); + runner.emit('test end'); + runner.emit('fail', generateTest(false), simpleError); + runner.emit('end'); + + var expectedTag = + ''); + }); }); describe('custom suite name', function() {