If the project is like this then .es6.js gets picked up by coverage instead of the .es6 files.
If I move the conf file up and set the basePath accordingly, everything works.
This is my karma conf:
module.exports = function (config) {
config.set({
// base path that will be used to resolve all patterns (eg. files, exclude)
basePath: '../../',
// frameworks to use
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ['jspm', 'jasmine-jquery', 'jasmine'],
files: [
'../../node_modules/babel-polyfill/dist/polyfill.js',
{pattern: '**/fixtures/*.html', watched: true, included: false, served: true},
{pattern: '**/fixtures/*.json', watched: true, included: false, served: true}
],
// list of files / patterns to load in the browser
//files: [
// '../jspm_packages/system.js',
//
// '**/*.spec.js',
// {pattern: '**/fixtures/*.html', watched: true, included: false, served: true},
// {pattern: '**/fixtures/*.json', watched: true, included: false, served: true}
//],
jspm: {
// Edit this to your needs
config: 'scripts/jspm.config.js',
loadFiles: [
'scripts/unit-tests/init.es6.js',
'scripts/**/*.spec.es6.js'
],
serveFiles: [
'scripts/**/!(*spec).es6.js'
]
},
// list of files to exclude
exclude: [],
proxies: {
'/jspm_packages/': '/jspm_packages/',
'/static/': '/base/'
},
// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {
'scripts/**/*.es6': ['babel', 'sourcemap', 'coverage'],
'scripts/**/*.es6.js': ['coverage']
},
// test results reporter to use
// possible values: 'dots', 'progress'
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ['coverage', 'progress', 'junit'],
'babelPreprocessor': {
options: {
presets: ['es2015'],
sourceMap: 'inline'
},
sourceFileName: function (file) {
return file.originalPath;
}
},
coverageReporter: {
dir: 'scripts/unit-tests/reports/coverage',
instrumenters: {isparta: require('isparta')},
instrumenter: {
'scripts/**/*.es6.js': 'isparta'
},
reporters: [
{
type: 'text-summary',
subdir: normalizationBrowserName
},
{
type: 'html',
subdir: normalizationBrowserName
},
{
type: 'cobertura',
subdir: 'cobertura'
}
]
},
junitReporter: {
outputFile: 'TESTS-karma.xml',
outputDir: 'scripts/unit-tests/reports/junit/'
},
// web server port
port: 9876,
// enable / disable colors in the output (reporters and logs)
colors: true,
// level of logging
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_INFO,
// enable / disable watching file and executing tests whenever any file changes
autoWatch: true,
// start these browsers
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
browsers: [/*Chrome,'Firefox' 'Safari',*/ 'PhantomJS'],
// Continuous Integration mode
// if true, Karma captures browsers, runs the tests and exits
singleRun: true
});
function normalizationBrowserName(browser) {
return browser.toLowerCase().split(/[ /-]/)[0];
}
};
My project structure:
If the project is like this then .es6.js gets picked up by coverage instead of the .es6 files. If I move the conf file up and set the basePath accordingly, everything works.
This is my karma conf: