Знакомлюсь с юнит тестированием. Пытаюсь заставить работать Karma, но сами тесты писать с использованием Babel. Папка test/src/ будет хранить сорцы тестов, test/compiled/ - скомпилированные .js файлы. Сейчас получается запустить Карму и Бабел в разных вкладках терминала, но как включить препроцессор в Карме, не пойму. Такое впеатление, что Карма вовсе игнорирует свойство конфига preprocessors, так как туда я могу вообще всё что угодно запихнуть, а Карма даже не ругнется.
Вот последняя версия конфига.
// Karma configuration
// Generated on Fri Jun 26 2015 11:58:37 GMT+0300 (EEST)
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: ['jasmine', 'requirejs'],
// list of files / patterns to load in the browser
files: [
'test/test-main.js',
{pattern: 'test/karma.conf.js', included: false},
{pattern: 'test/compiled/*_spec.js', included: false}
],
// list of files to exclude
exclude: [
],
// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {
'test/src/*_spec.js': [ 'babel' ]
},
babelPreprocessor: {
options: {
modules: "amd",
sourceMap: 'inline'
},
filename: function (file) {
return file.originalPath.replace(/\/src\//, '/compiled/');
},
sourceFileName: function (file) {
return file.originalPath;
}
},
// test results reporter to use
// possible values: 'dots', 'progress'
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ['progress'],
// 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'],
// Continuous Integration mode
// if true, Karma captures browsers, runs the tests and exits
singleRun: false
});
};
Кусочек package.json
"devDependencies": {
...
"jasmine-core": "^2.3.4",
"karma": "^0.12.37",
"karma-chrome-launcher": "^0.2.0",
"karma-jasmine": "^0.3.5",
"grunt-karma": "~0.11.1",
"karma-babel-preprocessor": "~5.2.1"
},