如何在visual studio 2013中设置Karma和Karma-ng-html2js-处理器的angularjs



我真的很难在visualstudio中设置angularjs测试。由于我刚刚与之斗争了几个小时,我想我会分享我的发现。

我的目标是让angular网站的指令和控制器测试通过(https://docs.angularjs.org/guide/unit-testing)通过。唯一的例外是该指令使用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>

我已经安装了节点和因果报应,并根据本教程设置了我的项目http://codeforcoffee.org/setting-up-angular-js-jasmine-and-karma-in-visual-studio/

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

我使用npm安装了karma、karma茉莉花、karma铬发射器和karma-ng-html2js-处理器。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']},

我花了一段时间才弄清楚是否需要去掉模板的前缀。

我希望这能帮助到某人:)

最新更新