Karma 構成ファイルをセットアップしていますが、ngHtml2JsPreprocessor を介して実行されたテンプレートのテストに成功していないため、存在するいくつかのオプションを完全には理解していません。
$templateCached
ngHtml2JsPreprocessor 内で、パスを含むいくつかの重要な値のプロパティを追加できます。
ngHtml2JsPreprocessor: {
stripPrefix: ".*/Went all the way back to the root of my application/",
// moduleName: 'templatesCached'//
},
各ファイルにモジュールとしてアクセスできるようにするために、今のところテンプレートをコメントアウトしました。エラーなしでモジュールをロードしています。開発ツールで templateCached バージョンを見つけることができます。
beforeEach(module('template'));
テンプレート フォルダーは、作成したベースパスの外にあります。
basePath: 'Scripts/',
プリプロセッサオブジェクト内で参照しています
preprocessors: {
'../Templates/**/*.html' : ['ng-html2js']
},
ここでも、すべてのテンプレートが js ファイルになり、キャッシュされます。
私はpackage.json の中にファイルを保存しました
save-dev
"karma-chrome-launcher": "^0.2.2",
"karma-jasmine": "^0.2.2",
"karma-ng-html2js-preprocessor": "^0.2.1",
プラグインで自分のインストールを参照しました。
plugins: [
'karma-chrome-launcher',
'karma-jasmine',
'karma-sinon',
'karma-ng-html2js-preprocessor'
],
すべてのファイルをロードしました
files: [
//jquery libaries
// angular libraries
// Scripts files
// source app.js
// tests folder and files
]
Karma の開始時にテストが実行されています
ただし、私のディレクティブは単なる空の文字列です
element.html()
戻り値 ""
私は吟遊詩人の注入を設定しました
bard.inject(
"$compile",
"$controller",
"$rootScope",
'$templateCache',
"haConfig",
"$q"
);
これが私のbeforeEachの内部です
bard.mockService(haConfig, {
getTemplateUrl: '/tst!'
});
//bard.mockService(haConfig, {});
console.log('ha config2', haConfig.getTemplateUrl());
var html = angular.element("<div explore-hero></div>");
console.log('htl',haConfig.getTemplateUrl());
scope = $rootScope.$new();
//templateCache
element = $compile(html)(scope);
//console.log(haConfig.getTemplateUrl(html));
scope.$digest(element);
console.log('missing text',haConfig.getTemplateUrl(html));
controller = element.scope();
console.log("element", element);
空の文字列が返される理由がわかりません。私はhtmlファイルを作成していますが、その中には何もありません。
templatesCached ファイルを開発ツールのフォルダーに表示する必要があるかどうか疑問に思うことはありますか? また、 karma.conf.js内の files 配列内でファイルを参照する必要があるかどうか。
現在、html ファイルを参照していますか? 私はjsファイルを試しましたが、それは何もしなかったようです