Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.06.2015, 14:13
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Как включить препроцессор 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: [url]https://npmjs.org/browse/keyword/karma-adapter[/url]
    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: [url]https://npmjs.org/browse/keyword/karma-preprocessor[/url]
	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: [url]https://npmjs.org/browse/keyword/karma-reporter[/url]
    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: [url]https://npmjs.org/browse/keyword/karma-launcher[/url]
    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"
	},
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #2 (permalink)  
Старый 26.06.2015, 14:27
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Не проще сначала запустить таск с бабелем (6to5), а потом тесты (es5)?
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #3 (permalink)  
Старый 26.06.2015, 14:38
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от nerv_
Не проще сначала запустить таск с бабелем (6to5), а потом тесты (es5)?
Ты имеешь в виду, запихать это в какой-нибудь таск раннер? Вообще, логично, спасибо.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #4 (permalink)  
Старый 26.06.2015, 17:02
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от FINoM
Ты имеешь в виду, запихать это в какой-нибудь таск раннер? Вообще, логично, спасибо.
разумеется. Можешь посмотреть как я делал тут: [(clean) -> (6to5, uglify, umd) -> (test)] только тесты на es5 там
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #5 (permalink)  
Старый 26.06.2015, 17:23
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

nerv_, можешь нубу объяснить, зачам нужны test runners в контексте фронт-енда? Пока что я вижу только одну разницу: они работают в консоли, вместо браузера.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #6 (permalink)  
Старый 27.06.2015, 14:17
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от FINoM
можешь нубу объяснить, зачам нужны test runners в контексте фронт-енда? Пока что я вижу только одну разницу: они работают в консоли, вместо браузера
task runner -> test runner

В конфиге у test runner можно прописать различные баузеры, в т.ч. безголовые (phantom).
Т.е. я могу добавить пару строк и в моем проекте тесты будут запусться не только в фантоме, но и в хроме, фоксе и т.д. Если пробежаться глазами по конфигу кармы, в общих чертах можно понять зачем еще.
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как включить JavaScript. maly Оффтопик 23 30.11.2014 21:04
Открытие div блока при первом визите на сайт Nushaba Общие вопросы Javascript 28 20.12.2013 21:24
Как организовать RichEdit arma Элементы интерфейса 2 18.02.2010 14:57
О наследовании событий, или как корректно его отменить. JCShen Events/DOM/Window 8 09.02.2010 00:00
Как правильно послать XML в POST запросе LowCoder AJAX и COMET 10 15.07.2009 23:20