From d57eaf0be9fa93b33318b274275b8b247bf3c799 Mon Sep 17 00:00:00 2001 From: Jonathan Grimes Date: Thu, 16 Mar 2017 12:30:48 -0500 Subject: [PATCH 1/4] Add package.json config option --- README.md | 14 ++++++++++++++ index.js | 11 +++++++---- package.json | 1 + 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 872bde7..5ba69e3 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,20 @@ Example: JEST_SUITE_NAME="Jest JUnit Unit Tests" JEST_JUNIT_OUTPUT="./artifacts/junit.xml" jest ``` +You can also define a 'jest-junit' key in your package.json. + +``` +{ + ... + "jest-junit": { + "suiteName": "jest tests", + "output": "./junit.xml", + "classNameTemplate": "{classname}-{title}", + "titleTemplate": "{classname}-{title}" + } +} +``` + Example output: ```xml diff --git a/index.js b/index.js index f1842f2..5fb18d9 100644 --- a/index.js +++ b/index.js @@ -1,5 +1,8 @@ 'use strict'; +const readPkg = require('read-pkg').sync; +const pkg = (readPkg(process.cwd()) || {})['jest-junit'] || {}; + const xml = require('xml'); const mkdirp = require('mkdirp'); const fs = require('fs'); @@ -9,11 +12,11 @@ const path = require('path'); const CLASSNAME_VAR = '{classname}'; const TITLE_VAR = '{title}'; -const SUITE_NAME = process.env.JEST_SUITE_NAME || 'jest tests'; -const OUTPUT_PATH = process.env.JEST_JUNIT_OUTPUT || +const SUITE_NAME = process.env.JEST_SUITE_NAME || pkg.suiteName || 'jest tests'; +const OUTPUT_PATH = process.env.JEST_JUNIT_OUTPUT || pkg.output || path.join(process.cwd(), './junit.xml'); -const CLASSNAME_TEMPLATE = process.env.JEST_JUNIT_CLASSNAME || '{classname} {title}'; -const TITLE_TEMPLATE = process.env.JEST_JUNIT_TITLE || '{classname} {title}'; +const CLASSNAME_TEMPLATE = process.env.JEST_JUNIT_CLASSNAME || pkg.classNameTemplate || '{classname} {title}'; +const TITLE_TEMPLATE = process.env.JEST_JUNIT_TITLE || pkg.titleTemplate || '{classname} {title}'; const replaceVars = function (str, classname, title) { return str diff --git a/package.json b/package.json index 2d164af..9df6fb4 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ ], "dependencies": { "mkdirp": "^0.5.1", + "read-pkg": "^2.0.0", "xml": "^1.0.1" } } From 89fb4a17aea0b2cf225fb8138c9a1dfee3124955 Mon Sep 17 00:00:00 2001 From: Jonathan Grimes Date: Thu, 16 Mar 2017 13:46:14 -0500 Subject: [PATCH 2/4] be safer, use same conventions as rest of file --- index.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index 5fb18d9..fab950e 100644 --- a/index.js +++ b/index.js @@ -1,7 +1,16 @@ 'use strict'; const readPkg = require('read-pkg').sync; -const pkg = (readPkg(process.cwd()) || {})['jest-junit'] || {}; + +const pkg = {}; +try { + const config = (readPkg(process.cwd()) || {})['jest-junit']; + if (config) { + Object.assign(pgk, config); + } +} catch (e) { + //don't blowup if there was an error...just skip +} const xml = require('xml'); const mkdirp = require('mkdirp'); From f9eae496cb0e750f323d26d6a7e61aad00959f32 Mon Sep 17 00:00:00 2001 From: Jonathan Grimes Date: Thu, 16 Mar 2017 17:46:21 -0500 Subject: [PATCH 3/4] don't add a dep. use require() directly --- index.js | 30 ++++++++++++++---------------- package.json | 1 - 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/index.js b/index.js index fab950e..24c2147 100644 --- a/index.js +++ b/index.js @@ -1,17 +1,5 @@ 'use strict'; -const readPkg = require('read-pkg').sync; - -const pkg = {}; -try { - const config = (readPkg(process.cwd()) || {})['jest-junit']; - if (config) { - Object.assign(pgk, config); - } -} catch (e) { - //don't blowup if there was an error...just skip -} - const xml = require('xml'); const mkdirp = require('mkdirp'); const fs = require('fs'); @@ -21,11 +9,21 @@ const path = require('path'); const CLASSNAME_VAR = '{classname}'; const TITLE_VAR = '{title}'; -const SUITE_NAME = process.env.JEST_SUITE_NAME || pkg.suiteName || 'jest tests'; -const OUTPUT_PATH = process.env.JEST_JUNIT_OUTPUT || pkg.output || +const cfg = {}; +try { + const config = (require(path.join(process.cwd(), 'package.json')) || {})['jest-junit']; + if (config) { + Object.assign(pgk, config); + } +} catch (e) { + //don't blowup if there was an error...just skip +} + +const SUITE_NAME = process.env.JEST_SUITE_NAME || cfg.suiteName || 'jest tests'; +const OUTPUT_PATH = process.env.JEST_JUNIT_OUTPUT || cfg.output || path.join(process.cwd(), './junit.xml'); -const CLASSNAME_TEMPLATE = process.env.JEST_JUNIT_CLASSNAME || pkg.classNameTemplate || '{classname} {title}'; -const TITLE_TEMPLATE = process.env.JEST_JUNIT_TITLE || pkg.titleTemplate || '{classname} {title}'; +const CLASSNAME_TEMPLATE = process.env.JEST_JUNIT_CLASSNAME || cfg.classNameTemplate || '{classname} {title}'; +const TITLE_TEMPLATE = process.env.JEST_JUNIT_TITLE || cfg.titleTemplate || '{classname} {title}'; const replaceVars = function (str, classname, title) { return str diff --git a/package.json b/package.json index 9df6fb4..2d164af 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,6 @@ ], "dependencies": { "mkdirp": "^0.5.1", - "read-pkg": "^2.0.0", "xml": "^1.0.1" } } From 766e382be5e6b0ec42b1f458c3cb3a64f059936d Mon Sep 17 00:00:00 2001 From: Jonathan Grimes Date: Thu, 16 Mar 2017 17:47:50 -0500 Subject: [PATCH 4/4] mised a rename --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index 24c2147..2b38ee0 100644 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const cfg = {}; try { const config = (require(path.join(process.cwd(), 'package.json')) || {})['jest-junit']; if (config) { - Object.assign(pgk, config); + Object.assign(cfg, config); } } catch (e) { //don't blowup if there was an error...just skip