diff options
Diffstat (limited to 'node_modules/istanbul-reports/lib/teamcity')
-rw-r--r-- | node_modules/istanbul-reports/lib/teamcity/index.js | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/node_modules/istanbul-reports/lib/teamcity/index.js b/node_modules/istanbul-reports/lib/teamcity/index.js new file mode 100644 index 000000000..34a90fc55 --- /dev/null +++ b/node_modules/istanbul-reports/lib/teamcity/index.js @@ -0,0 +1,45 @@ +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +"use strict"; + +function TeamcityReport(opts) { + opts = opts || {}; + this.file = opts.file || null; + this.blockName = opts.blockName || 'Code Coverage Summary'; +} + +function lineForKey(value, teamcityVar) { + return '##teamcity[buildStatisticValue key=\'' + teamcityVar + '\' value=\'' + value + '\']'; +} + +TeamcityReport.prototype.onStart = function (node, context) { + var metrics = node.getCoverageSummary(), + cw; + + cw = context.writer.writeFile(this.file); + cw.println(''); + cw.println('##teamcity[blockOpened name=\''+ this.blockName +'\']'); + + //Statements Covered + cw.println(lineForKey(metrics.statements.covered, 'CodeCoverageAbsBCovered')); + cw.println(lineForKey(metrics.statements.total, 'CodeCoverageAbsBTotal')); + + //Branches Covered + cw.println(lineForKey(metrics.branches.covered, 'CodeCoverageAbsRCovered')); + cw.println(lineForKey(metrics.branches.total, 'CodeCoverageAbsRTotal')); + + //Functions Covered + cw.println(lineForKey(metrics.functions.covered, 'CodeCoverageAbsMCovered')); + cw.println(lineForKey(metrics.functions.total, 'CodeCoverageAbsMTotal')); + + //Lines Covered + cw.println(lineForKey(metrics.lines.covered, 'CodeCoverageAbsLCovered')); + cw.println(lineForKey(metrics.lines.total, 'CodeCoverageAbsLTotal')); + + cw.println('##teamcity[blockClosed name=\''+ this.blockName +'\']'); + cw.close(); +}; + +module.exports = TeamcityReport; |