Задать вопрос
Finom
@Finom

Как включить препроцессор Babel в Karma?

Знакомлюсь с юнит тестированием. Пытаюсь заставить работать 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"
	},
  • Вопрос задан
  • 365 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
scapp
@scapp
JS фрилансер
Ты прочти абзац следующий
Polyfill

If you need polyfill, make sure to include it in files.

module.exports = function (config) {
config.set({
files: [
'node_modules/karma-babel-preprocessor/node_modules/babel-core/browser-polyfill.js',
// ...
],
// ...
});
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы