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');
}
Другие вопросы по тегам