我正在使用karma-ng-html2js-preprocessor。
目录结构类似于
-app
--directives
---gamelabel
----gamelabel.js
----gamelabel.html
-test
--gamelabel.test.js
karma.conf.js:
module.exports = function(config) {
config.set({
preprocessors: {
'app/directives/gamelabel/gamelabel.html': ['ng-html2js']
},
ngHtml2JsPreprocessor: {
stripPrefix: 'app/',
moduleName: 'templates'
},
frameworks: ['jasmine'],
files: [
// BOWER
[...bower components...]
// MOCK
'test/mock/**/*.js',
// SOURCES
'app/app.js',
'app/config.js',
'app/**/*.mod.js',
'app/common/config/config.pro.js',
'app/directives/gamelabel/*.*',
// TEST
'test/*.test.js'
],
[...other stuff..]
});
};
我的测试文件看起来像这样
describe('gamelabel', function() {
var $compile;
var $scope;
beforeEach(module('GamelabelMod'));
beforeEach(module('templates'));
beforeEach(inject(function(_$compile_, _$rootScope_) {
$compile = _$compile_;
$rootScope_ = _$rootScope_.$new();
}));
it('should create the title', inject(function($compile, $rootScope) {
var elm = $compile('<game-label></game-label>')($rootScope);
$rootScope.$digest();
console.log(elm);
expect(elm[0].outerHTML).toContain('div');
}));
});
现在该指令包含templateUrl
templateUrl: 'directives/gamelabel/gamelabel.dir.html',
这就是我期望在&#34; elm&#34;在测试中。 相反,我只看到
'<game-label class="ng-scope"></game-label>'
作为编译模板。
我做错了什么?
更新: 我还尝试将模板内联到指令中并且仍然是相同的,因此问题不在于模板路径。