Skip to content
This repository was archived by the owner on Aug 30, 2021. It is now read-only.

Commit c2b13b9

Browse files
committed
adding karma coverage for grunt
1 parent 7509074 commit c2b13b9

File tree

4 files changed

+42
-8
lines changed

4 files changed

+42
-8
lines changed

config/env/test.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,5 +80,7 @@ module.exports = {
8080
roles: ['user', 'admin']
8181
}
8282
}
83-
}
83+
},
84+
// This config is set to true during grunt coverage
85+
coverage: process.env.COVERAGE || false
8486
};

gruntfile.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
var _ = require('lodash'),
77
defaultAssets = require('./config/assets/default'),
88
testAssets = require('./config/assets/test'),
9+
testConfig = require('./config/env/test'),
910
fs = require('fs'),
1011
path = require('path');
1112

@@ -184,7 +185,7 @@ module.exports = function (grunt) {
184185
print: 'detail',
185186
coverage: true,
186187
require: 'test.js',
187-
coverageFolder: 'coverage',
188+
coverageFolder: 'coverage/server',
188189
reportFormats: ['cobertura','lcovonly'],
189190
check: {
190191
lines: 40,
@@ -222,6 +223,8 @@ module.exports = function (grunt) {
222223
});
223224

224225
grunt.event.on('coverage', function(lcovFileContents, done) {
226+
// Set coverage config so karma-coverage knows to run coverage
227+
testConfig.coverage = true;
225228
require('coveralls').handleInput(lcovFileContents, function(err) {
226229
if (err) {
227230
return done(err);
@@ -232,6 +235,7 @@ module.exports = function (grunt) {
232235

233236
// Load NPM tasks
234237
require('load-grunt-tasks')(grunt);
238+
grunt.loadNpmTasks('grunt-protractor-coverage');
235239

236240
// Make sure upload directory exists
237241
grunt.task.registerTask('mkdir:upload', 'Task that makes sure upload directory exists.', function () {
@@ -297,11 +301,10 @@ module.exports = function (grunt) {
297301
// Run the project tests
298302
grunt.registerTask('test', ['env:test', 'lint', 'mkdir:upload', 'copy:localConfig', 'server', 'mochaTest', 'karma:unit', 'protractor']);
299303
grunt.registerTask('test:server', ['env:test', 'lint', 'server', 'mochaTest']);
300-
grunt.registerTask('test:client', ['env:test', 'lint', 'server', 'karma:unit']);
304+
grunt.registerTask('test:client', ['env:test', 'lint', 'karma:unit']);
301305
grunt.registerTask('test:e2e', ['env:test', 'lint', 'dropdb', 'server', 'protractor']);
302-
303306
// Run project coverage
304-
grunt.registerTask('coverage', ['env:test', 'lint', 'mocha_istanbul:coverage']);
307+
grunt.registerTask('coverage', ['env:test', 'lint', 'mocha_istanbul:coverage', 'karma:unit']);
305308

306309
// Run the project in development mode
307310
grunt.registerTask('default', ['env:dev', 'lint', 'mkdir:upload', 'copy:localConfig', 'concurrent:default']);

karma.conf.js

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,13 @@
55
*/
66
var _ = require('lodash'),
77
defaultAssets = require('./config/assets/default'),
8-
testAssets = require('./config/assets/test');
8+
testAssets = require('./config/assets/test'),
9+
testConfig = require('./config/env/test'),
10+
karmaReporters = ['progress'];
11+
12+
if (testConfig.coverage) {
13+
karmaReporters.push('coverage');
14+
}
915

1016
// Karma configuration
1117
module.exports = function (karmaConfig) {
@@ -14,7 +20,14 @@ module.exports = function (karmaConfig) {
1420
frameworks: ['jasmine'],
1521

1622
preprocessors: {
17-
'modules/*/client/views/**/*.html': ['ng-html2js']
23+
'modules/*/client/views/**/*.html': ['ng-html2js'],
24+
'modules/core/client/app/config.js': ['coverage'],
25+
'modules/core/client/app/init.js': ['coverage'],
26+
'modules/*/client/*.js': ['coverage'],
27+
'modules/*/client/config/*.js': ['coverage'],
28+
'modules/*/client/controllers/*.js': ['coverage'],
29+
'modules/*/client/directives/*.js': ['coverage'],
30+
'modules/*/client/services/*.js': ['coverage']
1831
},
1932

2033
ngHtml2JsPreprocessor: {
@@ -30,7 +43,22 @@ module.exports = function (karmaConfig) {
3043

3144
// Test results reporter to use
3245
// Possible values: 'dots', 'progress', 'junit', 'growl', 'coverage'
33-
reporters: ['progress'],
46+
reporters: karmaReporters,
47+
48+
// Configure the coverage reporter
49+
coverageReporter: {
50+
dir : 'coverage/client',
51+
reporters: [
52+
// Reporters not supporting the `file` property
53+
{ type: 'html', subdir: 'report-html' },
54+
{ type: 'lcov', subdir: 'report-lcov' },
55+
// Output coverage to console
56+
{ type: 'text' }
57+
],
58+
instrumenterOptions: {
59+
istanbul: { noCompact: true }
60+
}
61+
},
3462

3563
// Web server port
3664
port: 9876,

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@
8282
"grunt-ng-annotate": "^1.0.1",
8383
"grunt-node-inspector": "~0.3.0",
8484
"grunt-nodemon": "~0.4.0",
85+
"grunt-protractor-coverage": "~0.2.15",
8586
"grunt-protractor-runner": "^2.1.0",
8687
"gulp": "^3.9.0",
8788
"gulp-angular-templatecache": "^1.7.0",

0 commit comments

Comments
 (0)