From 74cd9008711aff5f9f20cc145a9fbfa680b1e4ea Mon Sep 17 00:00:00 2001 From: Alban Fonrouge Date: Wed, 7 May 2014 10:52:43 +0200 Subject: [PATCH 1/3] Ouput test duration and stack trace in TAP YAML block --- lib/reporters/tap.js | 21 ++++++++++++++++++++- package.json | 3 ++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/lib/reporters/tap.js b/lib/reporters/tap.js index 2bcd995baa..f82630ca6e 100644 --- a/lib/reporters/tap.js +++ b/lib/reporters/tap.js @@ -6,6 +6,7 @@ var Base = require('./base') , cursor = Base.cursor , color = Base.color; +var YAML = require('yamljs'); /** * Expose `TAP`. @@ -45,12 +46,13 @@ function TAP(runner) { runner.on('pass', function(test){ passes++; console.log('ok %d %s', n, title(test)); + writeDiagnostic(test); }); runner.on('fail', function(test, err){ failures++; console.log('not ok %d %s', n, title(test)); - if (err.stack) console.log(err.stack.replace(/^/gm, ' ')); + writeDiagnostic(test, err); }); runner.on('end', function(){ @@ -71,3 +73,20 @@ function TAP(runner) { function title(test) { return test.fullTitle().replace(/#/g, ''); } + +/** + * Output TAP diagnostic in YAML format + * @param {Object} test + * @param {Object} err + * @api private + */ +function writeDiagnostic(test, err){ + var obj = {}; + if (test.duration) obj.elapsed_ms = test.duration; + if (err && err.stack) obj.stacktrace = err.stack; + if (Object.keys(obj).length > 0) { + console.log(' ---'); + console.log(YAML.stringify(obj, 4).replace(/^/gm, ' ')); + console.log(' ...'); + } +} diff --git a/package.json b/package.json index 7352dee546..d8981532c3 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,8 @@ "diff": "1.0.7", "debug": "*", "mkdirp": "0.3.5", - "glob": "3.2.3" + "glob": "3.2.3", + "yamljs": "0.1.5" }, "devDependencies": { "should": ">= 2.0.x", From cf92bcc87f3963f126e41904fb1bab5259f9a584 Mon Sep 17 00:00:00 2001 From: Alban Fonrouge Date: Wed, 7 May 2014 11:14:28 +0200 Subject: [PATCH 2/3] Output must use "duration_ms" property and be in seconds --- lib/reporters/tap.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/reporters/tap.js b/lib/reporters/tap.js index f82630ca6e..a0176c2ffa 100644 --- a/lib/reporters/tap.js +++ b/lib/reporters/tap.js @@ -82,7 +82,7 @@ function title(test) { */ function writeDiagnostic(test, err){ var obj = {}; - if (test.duration) obj.elapsed_ms = test.duration; + if (test.duration) obj.duration_ms = test.duration / 1000; if (err && err.stack) obj.stacktrace = err.stack; if (Object.keys(obj).length > 0) { console.log(' ---'); From 5c00c4d5b07ec5ac6ebf85ad3b50f066fbbc21c8 Mon Sep 17 00:00:00 2001 From: Alban Fonrouge Date: Tue, 20 May 2014 09:09:35 +0200 Subject: [PATCH 3/3] Report in ms instead of s --- lib/reporters/tap.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/reporters/tap.js b/lib/reporters/tap.js index a0176c2ffa..f11dff5476 100644 --- a/lib/reporters/tap.js +++ b/lib/reporters/tap.js @@ -82,7 +82,7 @@ function title(test) { */ function writeDiagnostic(test, err){ var obj = {}; - if (test.duration) obj.duration_ms = test.duration / 1000; + if (test.duration) obj.duration_ms = test.duration; if (err && err.stack) obj.stacktrace = err.stack; if (Object.keys(obj).length > 0) { console.log(' ---');