1

Я работаю над созданием своего собственного bootstrap project, который включает в себя RequireJS для структуры модулей, Backbone для маршрутизации и простых статических представлений, ReactJS для компонентов. Проект работает отлично, но я хочу добавить поддержку модульного тестирования для покрытия моих модулей кода в будущих проектах. Я пытаюсь добавить Karma в качестве тестового бегуна с поддержкой Jasmine и RequireJS в модульных тестах (тогда я добавлю TestUtils для тестирования компонентов).Настройки Karma для запуска тестов с жасмином, requirejs и реагирования

В настоящее время у меня есть некоторые проблемы с Кармой ... это не работает для меня ... Я создал Gruntfile.js с конфигурацией кармы:

karma: { 
    unit: { 
     configFile: 'karma.config.js' 
    } 
} 

Также я добавил karma.config.js файл с конфигурациями. А также я добавил файл с RequireJS конфигурации для испытаний test-main.js

Но я получил troubels при попытке запустить тесты с командой grunt test:

 
grunt test 

Running "karma:unit" (karma) task 
14 12 2015 15:06:17.594:WARN [karma]: No captured browser, open http://localhost:9876/ 
14 12 2015 15:06:17.634:INFO [karma]: Karma v0.13.15 server started at http://localhost:9876/ 
14 12 2015 15:06:17.644:INFO [launcher]: Starting browser PhantomJS 
14 12 2015 15:06:18.849:INFO [PhantomJS 1.9.8 (Windows 7 0.0.0)]: Connected on socket Gvi8xqI0lfbPEEOGAAAA with id 60807377 
PhantomJS 1.9.8 (Windows 7 0.0.0): Executed 0 of 0 ERROR (0.013 secs/0 secs) 

И на это сообщение программка застрял ... Есть кто-нибудь полезный совет ???

PS: Я использовал этот учебник, чтобы использовать RequireJS с кармических испытаний: http://karma-runner.github.io/0.8/plus/RequireJS.html

+0

Я проверил версию и нашел новейший учебник для использования кармы и RequireJS на официальном сайте: http://karma-runner.github.io/0.13/plus/requirejs.html. Но это все еще не работает для меня. –

ответ

1

Добавить в karma.config.js

files: [ 
    {pattern: 'bower_components/**/*.js', included: false}, 
    {pattern: 'scripts/**/*.js', included: false}, 
    {pattern: 'spec/**/*Spec.js', included: false}, 
    'spec/test-main.js' 
], 

exclude: [ 
    'scripts/main.js' 
], 

frameworks: ['jasmine', 'requirejs'], 

plugins: ['karma-phantomjs-launcher', 'karma-requirejs', 'karma-jasmine'], 

Выполнить из командной строки:

npm install requirejs --save-dev 

В spec/test-main.js

var pathToModule = function (path) { 
    console.log(path); 
    return path.replace(/^spec\//, '../spec/').replace(/\.(js)$/, ''); 
}; 

... 
allTestFiles.push(pathToModule(normalizedTestModule)); 
... 

baseUrl: '/base/scripts', 

и удалить

urlArgs: ... 
+0

Привет, Спасибо за ваш ответ. Я сделал эти изменения, но это все еще не работает для меня. Я получил сообщение об ошибке: WARN [веб-сервер]: 404: /base/scripts/spec/FirstSpec.js PhantomJS 1.9.8 (Windows 7 0.0.0) ОШИБКА Ошибка: ошибка сценария для " spec/FirstSpec " http://requirejs.org/docs/errors.html#scripterror at c: /Users/dmytro.medvid/sites/evolution/node_modules/requirejs/require.js: 140 –

+0

Я совершил все изменения в github repo: https://github.com/web-jenezis/jenezis-project-bootstrap. Конфигурации Grunt, расположенные в Gruntfile.js, конфигурацию кармы в karma.config.js и test-main.js, расположенные в каталоге спецификаций (spec/test-main.js). Похоже, что что-то не так с файлами spec –

+0

Я нашел проблему, я пропустил некоторые вещи ... Теперь все работает !!! Ваш ответ был очень полезным !!! Благодаря! –