From f108799a4d8fd95b8c0250ee83c23ada25d026b9 Mon Sep 17 00:00:00 2001 From: Liam Newman Date: Wed, 30 Jan 2013 13:10:37 -0800 Subject: [PATCH] fix(reporter.junit): Add browser log output to JUnit.xml Make the JUnit adapter inherit from base Push all log message into system-out element of the junit xml file. Closes #302 --- lib/reporters/JUnit.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/reporters/JUnit.js b/lib/reporters/JUnit.js index f45042b51..a458cb80e 100644 --- a/lib/reporters/JUnit.js +++ b/lib/reporters/JUnit.js @@ -3,17 +3,23 @@ var path = require('path'); var fs = require('fs'); var builder = require('xmlbuilder'); +var BaseReporter = require('./Base'); var helper = require('../helper'); var log = require('../logger').create('reporter'); var JUnitReporter = function(formatError, outputFile, pkgName, emitter) { + var messageAdapter = function(msg) { + allMessages.push(msg); + }; + + BaseReporter.call(this, formatError, 0, messageAdapter); + var xml; var suites; var pendingFileWritings = 0; var fileWritingFinished = function() {}; - - this.adapters = []; + var allMessages = []; this.onRunStart = function(browsers) { suites = {}; @@ -38,7 +44,7 @@ var JUnitReporter = function(formatError, outputFile, pkgName, emitter) { suite.att('failures', result.failed); suite.att('time', result.netTime / 1000); - suite.ele('system-out'); + suite.ele('system-out').dat(allMessages.join() + '\n'); suite.ele('system-err'); }; @@ -63,7 +69,7 @@ var JUnitReporter = function(formatError, outputFile, pkgName, emitter) { suites = xml = null; }; - this.onSpecComplete = function(browser, result) { + this.specSuccess = this.specSkipped = this.specFailure = function(browser, result) { var spec = suites[browser.id].ele('testcase', { name: result.description, time: result.time / 1000, classname: (pkgName ? pkgName + ' ' : '') + browser.name + '.' + result.suite.join(' ').replace(/\./g, '_')