🏡 Adding code coverage is a snap!

This commit is contained in:
Kent C. Dodds 2015-08-10 22:54:11 -06:00
parent 78ed269ca4
commit 8902ef4394
4 changed files with 28 additions and 3 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
node_modules node_modules
coverage/

View File

@ -36,7 +36,15 @@ module.exports = function (config) {
// test results reporter to use // test results reporter to use
// possible values: 'dots', 'progress' // possible values: 'dots', 'progress'
// available reporters: https://npmjs.org/browse/keyword/karma-reporter // available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ['progress'], reporters: ['progress', 'coverage'],
coverageReporter: {
reporters: [
{type: 'lcov', dir: 'coverage/', subdir: '.'},
{type: 'json', dir: 'coverage/', subdir: '.'},
{type: 'text-summary'}
]
},
// web server port // web server port
@ -69,7 +77,8 @@ module.exports = function (config) {
require('karma-webpack'), require('karma-webpack'),
'karma-jasmine', 'karma-jasmine',
'karma-firefox-launcher', 'karma-firefox-launcher',
'karma-chrome-launcher' 'karma-chrome-launcher',
'karma-coverage'
] ]
}); });
}; };

View File

@ -9,9 +9,13 @@
"babel-core": "5.8.22", "babel-core": "5.8.22",
"babel-loader": "5.3.2", "babel-loader": "5.3.2",
"css-loader": "0.15.6", "css-loader": "0.15.6",
"isparta": "3.0.3",
"isparta-loader": "0.2.0",
"istanbul": "0.3.17",
"jasmine-core": "2.3.4", "jasmine-core": "2.3.4",
"karma": "0.13.8", "karma": "0.13.8",
"karma-chrome-launcher": "0.2.0", "karma-chrome-launcher": "0.2.0",
"karma-coverage": "0.5.0",
"karma-firefox-launcher": "0.1.6", "karma-firefox-launcher": "0.1.6",
"karma-jasmine": "0.3.6", "karma-jasmine": "0.3.6",
"karma-webpack": "1.7.0", "karma-webpack": "1.7.0",

View File

@ -10,11 +10,11 @@ var config = {
devtool: 'eval', devtool: 'eval',
module: { module: {
loaders: [ loaders: [
{test: /\.js$/, loader: 'babel', exclude: /node_modules/},
{test: /\.css$/, loader: 'style!css'} {test: /\.css$/, loader: 'style!css'}
] ]
} }
}; };
config.module.loaders = getJSLoaders().concat(config.module.loaders);
if (process.env.NODE_ENV === 'test') { if (process.env.NODE_ENV === 'test') {
config.entry = './ControllerSpec.js'; config.entry = './ControllerSpec.js';
@ -23,6 +23,17 @@ if (process.env.NODE_ENV === 'test') {
module.exports = config; module.exports = config;
function getJSLoaders() {
var jsLoaders = [];
if (process.env.NODE_ENV === 'test') {
jsLoaders.push({test: /js\/.*\.js$/, loader: 'isparta', exclude: /node_modules/});
jsLoaders.push({test: /test\/.*\.js$/, loader: 'babel', exclude: /node_modules/});
} else {
jsLoaders.push({test: /\.js$/, loader: 'babel', exclude: /node_modules/});
}
return jsLoaders;
}
function here(d) { function here(d) {
return d ? path.join(__dirname, d) : __dirname; return d ? path.join(__dirname, d) : __dirname;
} }