gpt4 book ai didi

karma-runner - karma 预处理器未运行

转载 作者:行者123 更新时间:2023-12-04 04:02:09 27 4
gpt4 key购买 nike

我的 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 运行 karma,我没有看到任何 [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-runner - karma 预处理器未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34799194/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com