You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.2 KiB
56 lines
1.2 KiB
|
|
/** |
|
* Module dependencies. |
|
*/ |
|
|
|
var Base = require('./base'); |
|
|
|
/** |
|
* Expose `Teamcity`. |
|
*/ |
|
|
|
exports = module.exports = Teamcity; |
|
|
|
/** |
|
* Initialize a new `Teamcity` reporter. |
|
* |
|
* @param {Runner} runner |
|
* @api public |
|
*/ |
|
|
|
function Teamcity(runner) { |
|
Base.call(this, runner); |
|
var stats = this.stats; |
|
|
|
runner.on('start', function() { |
|
console.log("##teamcity[testSuiteStarted name='mocha.suite']"); |
|
}); |
|
|
|
runner.on('test', function(test) { |
|
console.log("##teamcity[testStarted name='%s']", escape(test.fullTitle())); |
|
}); |
|
|
|
runner.on('fail', function(test, err) { |
|
console.log("##teamcity[testFailed name='%s' message='%s']", escape(test.fullTitle()), escape(err.message)); |
|
}); |
|
|
|
runner.on('pending', function(test) { |
|
console.log("##teamcity[testIgnored name='%s' message='pending']", escape(test.fullTitle())); |
|
}); |
|
|
|
runner.on('test end', function(test) { |
|
console.log("##teamcity[testFinished name='%s' duration='%s']", escape(test.fullTitle()), test.duration); |
|
}); |
|
|
|
runner.on('end', function() { |
|
console.log("##teamcity[testSuiteFinished name='mocha.suite' duration='%s']", stats.duration); |
|
}); |
|
} |
|
|
|
/** |
|
* Escape the given `str`. |
|
*/ |
|
|
|
function escape(str) { |
|
return str.replace(/'/g, "|'"); |
|
} |