首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node JS Karma Testing - HotTowel模板扩展

Node JS Karma Testing - HotTowel模板扩展
EN

Stack Overflow用户
提问于 2015-11-16 07:23:25
回答 1查看 270关注 0票数 0

我正在自学node.js,我已经拿到了热毛巾模板并开始扩展它的功能。我添加了一个新的Controller,它实现了angular-file-upload。它工作得很好,直到我尝试对新模块实现Karma测试,然后抛出这个错误

代码语言:javascript
复制
   Chrome 46.0.2490 (Mac OS X 10.11.1) UploadController "before each" hook for "should be created successfully" FAILED
    Error: [$injector:unpr] Unknown provider: routerHelperProvider <- routerHelper
    http://errors.angularjs.org/1.4.7/$injector/unpr?p0=routerHelperProvider%20%3C-%20routerHelper
        at /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:68:12
        at /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4289:19
        at Object.getService [as get] (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4437:39)
        at /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4294:45
        at getService (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4437:39)
        at Object.invoke (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4469:13)
        at /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4299:79
        at forEach (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:336:20)
        at Object.createInjector [as injector] (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4299:3)
        at Context.workFn (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular-mocks/angular-mocks.js:2427:52)
Chrome 46.0.2490 (Mac OS X 10.11.1) UploadController "after each" hook: workFn for "should be created successfully" FAILED
    Error: [$injector:unpr] Unknown provider: routerHelperProvider <- routerHelper
    http://errors.angularjs.org/1.4.7/$injector/unpr?p0=routerHelperProvider%20%3C-%20routerHelper
        at /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:68:12
        at /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4289:19
        at Object.getService [as get] (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4437:39)
        at /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4294:45
        at getService (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4437:39)
        at Object.invoke (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4469:13)
        at /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4299:79
        at forEach (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:336:20)
        at Object.createInjector [as injector] (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4299:3)
        at Context.workFn (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular-mocks/angular-mocks.js:2427:52)
Chrome 46.0.2490 (Mac OS X 10.11.1) upload routes state "before each" hook for "should map state upload to url /upload " FAILED
    Error: [$injector:unpr] Unknown provider: routerHelperProvider <- routerHelper
    http://errors.angularjs.org/1.4.7/$injector/unpr?p0=routerHelperProvider%20%3C-%20routerHelper
        at /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:68:12
        at /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4289:19
        at Object.getService [as get] (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4437:39)
        at /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4294:45
        at getService (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4437:39)
        at Object.invoke (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4469:13)
        at /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4299:79
        at forEach (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:336:20)
        at Object.createInjector [as injector] (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4299:3)
        at Context.workFn (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular-mocks/angular-mocks.js:2427:52)
Chrome 46.0.2490 (Mac OS X 10.11.1): Executed 42 of 45 (3 FAILED) (0.371 secs / 0.053 secs)

上传控制器看起来像:-

代码语言:javascript
复制
(function () {
    'use strict';

    angular
        .module('app.upload',['angularFileUpload'])
        .controller('UploadController', UploadController);

    UploadController.$inject = ['logger','FileUploader','$scope'];
    /* @ngInject */
    function UploadController(logger, FileUploader, scope) {
        var vm = this;
        vm.title = 'Upload';

        var uploader = scope.uploader = new FileUploader({
            url: '/upload'
        });

        activate();

        function activate() {
            logger.info('Activated Upload View');
        }

        // FILTERS

        uploader.filters.push({
            name: 'customFilter',
            fn: function(item /*{File|FileLikeObject}*/, options) {
                return this.queue.length < 10;
            }
        });

        // CALLBACKS

        uploader.onWhenAddingFileFailed = function(item /*{File|FileLikeObject}*/, filter, options) {
            console.info('onWhenAddingFileFailed', item, filter, options);
        };
        uploader.onAfterAddingFile = function(fileItem) {
            console.info('onAfterAddingFile', fileItem);
        };
        uploader.onAfterAddingAll = function(addedFileItems) {
            console.info('onAfterAddingAll', addedFileItems);
        };
        uploader.onBeforeUploadItem = function(item) {
            console.info('onBeforeUploadItem', item);
        };
        uploader.onProgressItem = function(fileItem, progress) {
            console.info('onProgressItem', fileItem, progress);
        };
        uploader.onProgressAll = function(progress) {
            console.info('onProgressAll', progress);
        };
        uploader.onSuccessItem = function(fileItem, response, status, headers) {
            console.info('onSuccessItem', fileItem, response, status, headers);
        };
        uploader.onErrorItem = function(fileItem, response, status, headers) {
            console.info('onErrorItem', fileItem, response, status, headers);
        };
        uploader.onCancelItem = function(fileItem, response, status, headers) {
            console.info('onCancelItem', fileItem, response, status, headers);
        };
        uploader.onCompleteItem = function(fileItem, response, status, headers) {
            console.info('onCompleteItem', fileItem, response, status, headers);
        };
        uploader.onCompleteAll = function() {
            console.info('onCompleteAll');
        };

        console.info('uploader', uploader);

    }
})();

upload-routes.js如下所示:

代码语言:javascript
复制
(function() {
    'use strict';

    angular
        .module('app.upload')
        .run(appRun);

    appRun.$inject = ['routerHelper'];
    /* @ngInject */
    function appRun(routerHelper) {
        routerHelper.configureStates(getStates());
    }

    function getStates() {
        return [
            {
                state: 'upload',
                config: {
                    url: '/upload',
                    templateUrl: 'app/upload/upload.html',
                    controller: 'UploadController',
                    controllerAs: 'vm',
                    title: 'Upload',
                    settings: {
                        nav: 3,
                        content: '<i class="fa fa-lock"></i> Upload'
                    }
                }
            }
        ];
    }
})();

测试规范看起来像这样:

代码语言:javascript
复制
/* jshint -W117, -W030 */
describe('UploadController', function() {
    var controller;

    beforeEach(function() {
        bard.appModule('app.upload');
        bard.inject('$controller', '$log', '$rootScope');
    });

    beforeEach(function () {
        controller = $controller('UploadController');
        $rootScope.$apply();
    });

    bard.verifyNoOutstandingHttpRequests();

    describe('Upload controller', function() {

        it('should be created successfully', function () {

            expect(controller).to.be.defined;
        });

        describe('after activate', function() {
            it('should have title of Upload', function() {
                expect(controller.title).to.equal('Upload');
            });

            it('should have logged "Activated"', function() {
                expect($log.info.logs).to.match(/Activated/);
            });
        });
    });
});

我发现了一个链接,该链接指示当未加载所有必需的依赖项时会发生此错误。构建是由gulp精心编排的。gulp.js和gulp.config文件看起来没有问题,浏览器中加载了正确的资源。

当我在SingleRun模式= False下运行gulp并生成一个Chrome实例时,我在console.log中得到以下信息:-

代码语言:javascript
复制
15 11 2015 23:21:37.527:WARN [proxy]: failed to proxy /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map (connect ECONNREFUSED 127.0.0.1:8888)
15 11 2015 23:21:37.528:DEBUG [middlware:source-files]: Requesting /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map /
15 11 2015 23:21:37.528:DEBUG [middlware:source-files]: Fetching /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map
15 11 2015 23:21:37.529:DEBUG [proxy]: proxying request - /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map to localhost:8888
15 11 2015 23:21:37.531:WARN [proxy]: failed to proxy /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map (connect ECONNREFUSED 127.0.0.1:8888)
15 11 2015 23:21:37.532:DEBUG [middlware:source-files]: Requesting /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map /
15 11 2015 23:21:37.532:DEBUG [middlware:source-files]: Fetching /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map
15 11 2015 23:21:37.532:DEBUG [proxy]: proxying request - /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map to localhost:8888
15 11 2015 23:21:37.533:WARN [proxy]: failed to proxy /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map (connect ECONNREFUSED 127.0.0.1:8888)
15 11 2015 23:21:37.534:DEBUG [middlware:source-files]: Requesting /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map /
15 11 2015 23:21:37.534:DEBUG [middlware:source-files]: Fetching /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map
15 11 2015 23:21:37.534:DEBUG [proxy]: proxying request - /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map to localhost:8888
15 11 2015 23:21:37.535:WARN [proxy]: failed to proxy /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map (connect ECONNREFUSED 127.0.0.1:8888)
15 11 2015 23:21:37.536:DEBUG [middlware:source-files]: Requesting /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map /
15 11 2015 23:21:37.546:DEBUG [middlware:source-files]: Fetching /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map
15 11 2015 23:21:37.546:DEBUG [proxy]: proxying request - /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map to localhost:8888
15 11 2015 23:21:37.547:WARN [proxy]: failed to proxy /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map (connect ECONNREFUSED 127.0.0.1:8888)
15 11 2015 23:21:37.548:DEBUG [middlware:source-files]: Requesting /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map /
15 11 2015 23:21:37.548:DEBUG [middlware:source-files]: Fetching /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map
15 11 2015 23:21:37.548:DEBUG [proxy]: proxying request - /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map to localhost:8888
15 11 2015 23:21:37.549:WARN [proxy]: failed to proxy /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map (connect ECONNREFUSED 127.0.0.1:8888)
15 11 2015 23:21:37.549:DEBUG [middlware:source-files]: Requesting /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map /
15 11 2015 23:21:37.549:DEBUG [middlware:source-files]: Fetching /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map
15 11 2015 23:21:37.550:DEBUG [proxy]: proxying request - /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map to localhost:8888
15 11 2015 23:21:37.550:WARN [proxy]: failed to proxy /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map (connect ECONNREFUSED 127.0.0.1:8888)

*编辑-运行gulp测试--startServers=true -以确保服务器已启动,并克服了连接被拒绝的错误。尽管如此,routerHelperProvider问题仍然存在

文件存在于正确的位置。

我认为我做了一些明显错误的事情,但我看不出来。有什么建议吗?

谢谢

西蒙

EN

回答 1

Stack Overflow用户

发布于 2016-05-09 02:49:54

问题似乎出在phantomjs的版本上。所以你需要做几件事。

here

  • At下载最新版本的phantomjs在命令提示符下卸载以下库: npm uninstall phantomjs karma- phantomjs - karma-phantomjs2-launcher

  • Update ---dev
  1. 在命令提示符下安装以下库: npm

---dev phantomjs- phantomjs2 phantomjs2从phantomjs到phantomjs2的代码中的任何引用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33726326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档