aboutsummaryrefslogtreecommitdiff
path: root/node_modules/istanbul-reports/lib/teamcity
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/istanbul-reports/lib/teamcity')
-rw-r--r--node_modules/istanbul-reports/lib/teamcity/index.js45
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;