ng-html2js не работает с Phantom, работает с Chrome
Я использую cg-angular для создания своего проекта.
Я тестирую директиву, которая использует templateUr и ng-html2js для загрузки моих шаблонов в модуль. Когда я запускаю свой тест с использованием Chrome в качестве браузера, он не проходит, но когда я запускаю его с Phantom, я получаю:
Error: [$injector:modulerr] Failed to instantiate module templates due to:
Вот соответствующая часть моего Gruntfile:
karma: {
options: {
frameworks: ['jasmine'],
preprocessors: {'directive/**/*.html':['ng-html2js']},
files: [ //this files data is also updated in the watch handler, if updated change there too
'<%= dom_munger.data.appjs %>',
'bower_components/angular-mocks/angular-mocks.js',
'directive/**/*.html',
createFolderGlobs(['*-spec.js'])
],
ngHtml2JsPreprocessor:{
moduleName:'templates'
},
logLevel: 'ERROR',
reporters: ['mocha'],
autoWatch: false, //watching is handled by grunt-contrib-watch
},
all_tests: {
browsers: ['PhantomJS', 'Chrome'],
singleRun:false
},
during_watch:{
browsers: ['PhantomJS'],
singleRun:true
}
}
Итак, запуск теста grunt, который запускает карму: all_tests, работает как чемпион. грубая подача, которая запускает карму.
Есть ли способ проверить, действительно ли выполняется html2js?
Править Это не Призрак. Если я запускаю Chrome в задаче 'while_watch', он также не работает.
1 ответ
Догадаться. Я использую генератор-CG-Angular, чтобы поменять этот проект. Он использует событие grunt watch для настройки некоторых параметров. Это событие используется только во время выполнения задания, а не во время тестирования или сборки. Я не заметил, что он перезаписывает k arma.options, поэтому html2js никогда не вызывался. Когда я добавил это в раздел событий моего Gruntfile, html2js запускается как надо. Ниже приведен соответствующий раздел моего Gruntfile с указанием изменений.
if (grunt.file.exists(spec)) {
var files = [].concat(grunt.config('dom_munger.data.appjs'));
files.push('bower_components/angular-mocks/angular-mocks.js');
files.push(spec);
files.push('directive/**/*.html'); // This one
grunt.config('karma.options.files', files);
grunt.config('karma.options.ngHtml2JsPreprocessor.moduleName', 'templates'); // And this one
tasksToRun.push('karma:during_watch');
}