业力预处理器不是 运行
Karma preprocessor not running
我的 karma.conf.js 包括:
plugins: [
'karma-jasmine',
'karma-phantomjs-launcher',
'karma-ng-html2js-preprocessor'
],
preprocessors: {
'../../mypath/*.html': ['ng-html2js']
},
ngHtml2JsPreprocessor: {
moduleName: 'templates'
},
(我也尝试过不指定任何插件。)
我的 devDependencies 包括:
"karma-ng-html2js-preprocessor": "^0.2.0"`
我的测试包括:
beforeEach(module('templates'));
这些给出了错误:
Module 'templates' is not available!
运行 与 --log-level debug
的业力,我 没有 看到任何 [preprocessor.html2js]
条目。 (我确实得到 Loading plugin karma-ng-html2js-preprocessor.
)
我做错了什么?
问题是模板也必须列在 files
下,并且 preprocessors
中的 glob 模式必须匹配。 documentation.
暗示了这一点
files: [
'../../Scripts/angular-app/directives/*.html',
// .js files
],
preprocessors: {
'../../Scripts/angular-app/**/*.html': ['ng-html2js']
},
请注意 **/*.html
不 匹配 basePath
的父目录。
当一切正确时,karma start --log-level debug
将显示 DEBUG [preprocessor.html2js]
个条目。
我还能够删除 plugins
部分。
为了获得正确的缓存 ID,我使用了:
ngHtml2JsPreprocessor: {
// Load this module in your tests of directives that have a templateUrl.
moduleName: 'templates',
cacheIdFromPath: function (filepath) {
return filepath.substring(filepath.indexOf('/Scripts/angular-app/'));
}
},
如果模板引用自定义过滤器,则必须在 files
中加载过滤器,并且必须在指令测试中加载过滤器的模块。
我的 karma.conf.js 包括:
plugins: [
'karma-jasmine',
'karma-phantomjs-launcher',
'karma-ng-html2js-preprocessor'
],
preprocessors: {
'../../mypath/*.html': ['ng-html2js']
},
ngHtml2JsPreprocessor: {
moduleName: 'templates'
},
(我也尝试过不指定任何插件。)
我的 devDependencies 包括:
"karma-ng-html2js-preprocessor": "^0.2.0"`
我的测试包括:
beforeEach(module('templates'));
这些给出了错误:
Module 'templates' is not available!
运行 与 --log-level debug
的业力,我 没有 看到任何 [preprocessor.html2js]
条目。 (我确实得到 Loading plugin karma-ng-html2js-preprocessor.
)
我做错了什么?
问题是模板也必须列在 files
下,并且 preprocessors
中的 glob 模式必须匹配。 documentation.
files: [
'../../Scripts/angular-app/directives/*.html',
// .js files
],
preprocessors: {
'../../Scripts/angular-app/**/*.html': ['ng-html2js']
},
请注意 **/*.html
不 匹配 basePath
的父目录。
karma start --log-level debug
将显示 DEBUG [preprocessor.html2js]
个条目。
我还能够删除 plugins
部分。
为了获得正确的缓存 ID,我使用了:
ngHtml2JsPreprocessor: {
// Load this module in your tests of directives that have a templateUrl.
moduleName: 'templates',
cacheIdFromPath: function (filepath) {
return filepath.substring(filepath.indexOf('/Scripts/angular-app/'));
}
},
如果模板引用自定义过滤器,则必须在 files
中加载过滤器,并且必须在指令测试中加载过滤器的模块。