Настройка кармы с помощью Angular, Babel (ES6), Webpack и Mocha
Я пытаюсь настроить Karma на проекте с Angular. В настоящее время я получаю сообщение об ошибке:
Ошибка: [$ инжектор: номод] Модуль 'приложение' недоступен! Вы либо неправильно написали имя модуля, либо забыли загрузить его. При регистрации модуля убедитесь, что вы указали зависимости в качестве второго аргумента. http://errors.angularjs.org/1.4.7/ $ injector / nomod? p0 = app at /htdocs/src/javascript/app/controllers/fixedQuoteFormController_test.js:2073
То, что я пытаюсь выполнить, это просто начальная настройка, поскольку у меня нет никаких тестов, очевидно. Кажется, мне не нравится мой module.export для контроллера. Буду признателен за любую помощь в том, как я могу настроить эту настройку!
Мой файл Karma.conf:
// Karma configuration
// Generated on Tue Nov 17 2015 13:05:37 GMT-0600 (CST)
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: ['mocha', 'chai'],
plugins: [
require("karma-webpack"),
require("karma-mocha"),
require("karma-phantomjs-launcher"),
require("karma-chai")
],
// list of files / patterns to load in the browser
files: [
'node_modules/angular/angular.js',
'node_modules/angular-mocks/angular-mocks.js',
'src/javascript/app/**/*_test.js',
'src/javascript/app/**/**/*_test.js'
],
// 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: {
// add webpack as preprocessor
'src/javascript/app/*_test.js': ['webpack'],
'src/javascript/app/**/*_test.js': ['webpack']
},
webpack: {
// karma watches the test entry points
// (you don't need to specify the entry option)
// webpack watches dependencies
// webpack configuration
},
webpackMiddleware: {
// webpack-dev-middleware configuration
// i. e.
noInfo: true
},
// 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: ['PhantomJS'],
// Continuous Integration mode
// if true, Karma captures browsers, runs the tests and exits
singleRun: false,
// Concurrency level
// how many browser should be started simultanous
concurrency: Infinity,
})
}
Мой тестовый файл: (просто пытаюсь потребовать контроллер)
const testCont = require('./testCont');
Мой контроллер
module.exports = angular.module('app').controller('testCont', testCont);
/* @ngInject */
function testCont() {
return 1;
}
1 ответ
У меня есть подтверждение концепции, над которой я работаю, которая служит успешной рабочей настройкой Angular + Webpack + ES6 + Karma + Mocha + Chai.
Может быть, это даст вам некоторое представление или поможет решить вашу проблему. Не стесняйтесь его раскошелиться, повернуть и посмотреть, может ли эта установка вам подойти. У меня есть мои Webpack.config.js и Karma.conf.js в отдельных файлах.
Это может послужить более чистой отправной точкой для вас.