Skip to content

Commit ccd4df8

Browse files
committed
add jasmine teamcity reporter
1 parent 09bf462 commit ccd4df8

File tree

4 files changed

+47
-7
lines changed

4 files changed

+47
-7
lines changed

Gruntfile.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,12 @@ module.exports = function (grunt) {
3737
spec_files: [
3838
'*spec.js'
3939
],
40-
reporter: {
41-
colors: true
40+
reporters: {
41+
spec: {
42+
colors: true
43+
},
44+
// Uncomment line below to activate teamcity reporter
45+
//teamcity: true
4246
}
4347
}
4448
},

README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,13 +72,17 @@ Jasmine specific configuration. Use empty object,
7272
spec_dir: 'spec',
7373
spec_files: ['**/*[sS]pec/.js'],
7474
helpers: [],
75-
reporter: {}
75+
reporters: {
76+
spec: {}
77+
}
7678
}
7779
```
7880

7981
See the [jasmine docs](http://jasmine.github.io/2.4/node.html#section-Configuration) for more information on the supported configuration.
8082

81-
The `reporter` property allows the [Jasmine spec reporter](https://github.com/bcaudan/jasmine-spec-reporter) to be configured.
83+
The `reporters` property allows either `spec` property for Configuring the [Jasmine spec reporter](https://github.com/bcaudan/jasmine-spec-reporter) or `teamcity: true` for activating [Jasmine Reporters - TeamCityReporter](https://github.com/larrymyers/jasmine-reporters).
84+
85+
If `teamcity` reporter is enabled `spec` reporter will be disabled and `teamcity` reporter will be added to the coverage reporters as well.
8286

8387

8488
#### options.coverage

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
"deepmerge": "^0.2.10",
4242
"istanbul": "^0.4.4",
4343
"jasmine": "^2.4.1",
44+
"jasmine-reporters": "^2.2.0",
4445
"jasmine-spec-reporter": "^2.5.0"
4546
},
4647
"devDependencies": {

tasks/jasmine-node-task.js

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ var fs = require('fs'),
99
var istanbul = require('istanbul'),
1010
Jasmine = require('jasmine'),
1111
SpecReporter = require('jasmine-spec-reporter'),
12-
deepmerge = require('deepmerge');
12+
deepmerge = require('deepmerge'),
13+
reporters = require('jasmine-reporters');
1314

1415
module.exports = function jasmineNodeTask(grunt) {
1516

@@ -169,6 +170,21 @@ module.exports = function jasmineNodeTask(grunt) {
169170
};
170171
};
171172

173+
var addReporters = function addReporters(jasmine) {
174+
var ropts = options.jasmine.reporters;
175+
176+
var reporter;
177+
if (ropts.teamcity) {
178+
reporter = new reporters.TeamCityReporter(); // no options to set
179+
reporter.name = 'TeamCity Reporter';
180+
jasmine.addReporter(reporter);
181+
}
182+
else {
183+
reporter = new SpecReporter(ropts.spec);
184+
reporter.name = 'Spec Reporter';
185+
jasmine.addReporter(reporter);
186+
}
187+
};
172188

173189
var runner = function runner(opts) {
174190
opts = opts || {};
@@ -187,7 +203,7 @@ module.exports = function jasmineNodeTask(grunt) {
187203
try {
188204
var jasmine = new Jasmine();
189205
jasmine.loadConfig(options.jasmine);
190-
jasmine.addReporter(new SpecReporter(options.jasmine.reporter));
206+
addReporters(jasmine);
191207
jasmine.onComplete(function(passed) {
192208
options.onComplete(passed, opts);
193209
});
@@ -212,6 +228,12 @@ module.exports = function jasmineNodeTask(grunt) {
212228
grunt.file.mkdir(reportingDir); // ensure we fail early if we cannot do this
213229

214230
var reportClassNames = options.coverage.report;
231+
232+
// Add teamcity to the coverage reporter if it was set as jasmine reporter
233+
if (options.jasmine.reporters.teamcity && reportClassNames.indexOf('teamcity') === -1) {
234+
reportClassNames = reportClassNames.concat(['teamcity']);
235+
}
236+
215237
reportClassNames.forEach(function eachReport(reportClassName) {
216238
reports.push(Report.create(reportClassName, {
217239
dir: reportingDir,
@@ -253,7 +275,9 @@ module.exports = function jasmineNodeTask(grunt) {
253275
// Jasmine options
254276
jasmine: {
255277
spec_dir: 'spec',
256-
reporter: {}
278+
reporters: {
279+
spec: {}
280+
}
257281
},
258282

259283
// Coverage options
@@ -275,6 +299,13 @@ module.exports = function jasmineNodeTask(grunt) {
275299
}
276300
}, this.options());
277301

302+
// Support old config with Spec reporter only
303+
if (options.jasmine.reporter) {
304+
options.jasmine.reporters = {
305+
spec: options.jasmine.reporter
306+
};
307+
}
308+
278309
options.jasmine.spec_files = options.jasmine.spec_files || ['**/*[sS]pec.js'];
279310
if (options.coverage !== false) {
280311
options.coverage.report = options.coverage.report || ['lcov', 'text-summary'];

0 commit comments

Comments
 (0)