如何在visual studio 2013中使用Karma和Karma-ng-html2js-preprocessor设置angularjs测试

如何在visual studio 2013中使用Karma和Karma-ng-html2js-preprocessor设置angularjs测试,angularjs,visual-studio-2013,jasmine,karma-runner,Angularjs,Visual Studio 2013,Jasmine,Karma Runner,我在VisualStudio中设置angularjs测试时真的很费劲。因为我刚刚和这个问题斗争了几个小时,我想我会分享我的发现 我的目标是让angular网站的指令和控制器测试通过。唯一的例外是该指令使用templateUrl而不是template 指令: app.directive('aGreatEye', function () { return { restrict: 'E', replace: true, templateUrl:

我在VisualStudio中设置angularjs测试时真的很费劲。因为我刚刚和这个问题斗争了几个小时,我想我会分享我的发现

我的目标是让angular网站的指令和控制器测试通过。唯一的例外是该指令使用templateUrl而不是template

指令:

app.directive('aGreatEye', function () {
    return {
        restrict: 'E',
        replace: true,
        templateUrl: 'ng-views/temp.html'
    };
}); 
模板:

<h1>lidless, wreathed in flame, {{1 + 1}} times</h1>
我已经安装了node和karma,并按照本教程设置了我的项目

我面临的问题是让预处理器工作。我不确定我实际面临的问题,但我认为这归结为以下问题 *预处理器模块未加载
*未正确引用模板

我使用npm安装了karma、karma jasmine、karma chrome启动器和karma-ng-html2js-preprocessor。npm在解决方案文件夹中运行

npm init
npm install karma --save-dev
npm install karma-jasmine --save-dev
npm install karma-chrome-launcher --save-dev
npm install karma-ng-html2js-preprocessor --save-dev
我还将此配置添加到karma.conf.js中,其中WebApplication1是我的应用程序项目的名称

files: [
      'WebApplication1/Scripts/Angular/angular.js',
      'WebApplication1/Scripts/Angular/angular-ui-router.js',
      'WebApplication1/Scripts/Angular/angular-mocks.js',

      'WebApplication1/ng-scripts/*.js',

      'WebApplication1.Tests/ng-tests/*.js',

      'WebApplication1/ng-views/*.html',
    ],
ngHtml2JsPreprocessor: { stripPrefix: 'WebApplication1/', },
preprocessors: {'WebApplication1/ng-views/*.html': ['ng-html2js']},
需要去掉模板的前缀花了我一段时间才弄明白

我希望这对某人有所帮助: