diff --git a/.gitignore b/.gitignore index 5016e5def..5b80f24cb 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,5 @@ custom/* docs/index.md bower_components/ + +coverage/* diff --git a/gulpfile.js b/gulpfile.js index ba699af6b..42fd09b09 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -38,6 +38,7 @@ var srcFiles = [ gulp.task('build', buildTask); +gulp.task('coverage', coverageTask); gulp.task('watch', watchTask); gulp.task('bump', bumpTask); gulp.task('release', ['build'], releaseTask); @@ -145,6 +146,17 @@ function unittestWatchTask() { })); } +function coverageTask() { + var files = srcFiles.slice(); + files.push(testDir + '*.js'); + + return gulp.src(files) + .pipe(karma({ + configFile: 'karma.coverage.conf.js', + action: 'run' + })); +} + function librarySizeTask() { return gulp.src('Chart.min.js') .pipe(size({ @@ -163,13 +175,10 @@ function moduleSizesTask() { })); } - function watchTask() { gulp.watch('./src/**', ['build', 'unittest', 'unittestWatch']); } - - function serverTask() { connect.server({ port: 8000 diff --git a/karma.coverage.conf.js b/karma.coverage.conf.js new file mode 100644 index 000000000..cc047aa4d --- /dev/null +++ b/karma.coverage.conf.js @@ -0,0 +1,18 @@ +module.exports = function(config) { + config.set({ + browsers: ['Chrome', 'Firefox'], + + coverageReporter: { + type: 'html', + dir: 'coverage/' + }, + + frameworks: ['jasmine'], + + preprocessors: { + 'src/**/*.js': ['coverage'] + }, + + reporters: ['progress', 'coverage'], + }); +}; \ No newline at end of file diff --git a/package.json b/package.json index 27ed2888b..066d65369 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "jquery": "^2.1.4", "karma": "^0.12.37", "karma-chrome-launcher": "^0.2.0", + "karma-coverage": "^0.5.1", "karma-firefox-launcher": "^0.1.6", "karma-jasmine": "^0.3.6", "onecolor": "^2.5.0", diff --git a/test/core.helpers.tests.js b/test/core.helpers.tests.js new file mode 100644 index 000000000..e69de29bb